//第一种方法
#include <stdio.h>
int main(void)
{
int num;
int i, j;
scanf("%d", &num);
for(i = 2; i <= num; i++)
{
for(j =2 ;j < i; j++)
{
if( i % j == 0)
break;
}
if(i == j)
printf("%d\t", i);
}
printf("Done!\n");
return 0;
}//j从2到(i-1)去除i,若i是素数,则break语句一直不执行,知道j == i,此时输出i.
//第二种方法#include <stdio.h>
int isprime(int);
int main(void)
{
int num;
int i;
printf("input a positive number:");
scanf("%d",&num);
printf("all the primes <= %d:\n",num);
for(i = 2; i <= num; i++)
{
if(isprime(i))
printf("%d\t", i);
}
return 0;
}
int isprime(int n)
{
int j;
for(j = 2; j * j <= n; j++) //用for(j = 2; j < n; j++)会有相同效果
{
if(0 == n % j)
return 0;
}
return 1;
}
/*
input a positive number:30
all the primes <= 30:
2 3 5 7 11 13 17 19 23 29
*/
该博客介绍如何接受用户输入的整数,并程序化地找出并打印出所有小于或等于该整数的素数。通过算法解析,展示了素数判断和遍历的过程。
3389

被折叠的 条评论
为什么被折叠?



