解题思路:
注意事项:
参考代码:
#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语言代码)浏览:1234 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:1007 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:449 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:690 |
Hello, world! (C++代码)浏览:1745 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:550 |
1017题解浏览:605 |
字符逆序 (C语言代码)浏览:460 |
C二级辅导-阶乘数列 (C语言代码)浏览:522 |
程序员的表白 (C语言代码)浏览:598 |