解题思路:先写一个判断是否是素数的函数,接下来就好做了
素数是只能被1或自己本身整除的数
bool isPrimeNum(int x){ if(x <= 1) return false; //1不是素数 int k = (int)sqrt(1.0 * x); for(int i = 2; i <= k;i++){//只用判断2~这个数的开平方即可,之后的数不用在判断了,(在判断就是重复了) if(x % i == 0) return false; } return true; }
最后的代码
#include<stdio.h> #include<math.h> bool isPrimeNum(int x){ if(x <= 1) return false; int k = (int)sqrt(1.0 * x); for(int i = 2; i <= k;i++){ if(x % i == 0) return false; } return true; } int main(){ int N; scanf("%d",&N); for(int i = 2; i <= N; i++){ if(isPrimeNum(i)) printf("%d\n",i); } return 0; }
注意:教的时候选择C++,选择C语言会报编译错误
0.0分
3 人评分
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:458 |
A+B for Input-Output Practice (VII) (C++代码)浏览:608 |
兰顿蚂蚁 (C++代码)浏览:1091 |
十->二进制转换 (C语言代码)浏览:1291 |
【偶数求和】 (C语言代码)浏览:640 |
C语言训练-大、小写问题 (C语言代码)浏览:611 |
1011题解浏览:761 |
1124题解浏览:592 |
2^k进制数 (C语言描述,蓝桥杯)浏览:1420 |
1035 题解浏览:779 |