解题思路:先写一个判断是否是素数的函数,接下来就好做了
素数是只能被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 人评分
字符串的输入输出处理 (C语言代码)浏览:2021 |
简单的a+b (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:629 |
Tom数 (C++代码)浏览:828 |
简单的a+b (C语言代码)浏览:760 |
【回文数(二)】 (C语言代码)浏览:731 |
不会做的浏览:875 |
【偶数求和】 (C语言代码)浏览:646 |
WU-图形输出 (C++代码)浏览:802 |