解题思路:
注意事项:
参考代码:
#include <stdio.h>
#include<math.h>
int IsPrime(int a);
int main()
{
int N,n,i;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
if(IsPrime(i))
printf("%d\n",i);
}
return 0;
}
int IsPrime(int a)
{
//0,1,负数都是非素数
if(a <= 1){
return 0;
}
if(a==2)
return 1;
//计算枚举上界,为防止double值带来的精度损失,所以采用根号值取整后再加1,即宁愿多枚举一个,也不愿少枚举一个数
int bound = (int)sqrt(a) + 1;
for(int i = 2;i <= bound;i++)
{
//依次枚举这些数能否整除x,若能则必不是素数
if(a % i == 0)
{
return 0;
}
}
return 1;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1327 |
WU-陶陶摘苹果2 (C++代码)浏览:1018 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
用筛法求之N内的素数。 (C语言代码)浏览:711 |
【亲和数】 (C语言代码)浏览:628 |
简单的a+b (C语言代码)浏览:857 |
简单的a+b (C语言代码)浏览:542 |
WU-C语言程序设计教程(第三版)课后习题12.3 (C++代码)浏览:925 |
明明的随机数 (C语言代码)浏览:965 |
素数的个数 一直是超时浏览:698 |