解题思路:先写一个判断是否是素数的函数,接下来就好做了
素数是只能被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 人评分