解题思路:先写一个判断是否是素数的函数,接下来就好做了
素数是只能被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语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:654 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:553 |
数组输出 (C语言代码)--此题的题目描述有问题浏览:1844 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:485 |
wu-淘淘的名单 (C++代码)浏览:1532 |
C语言训练-自由落体问题 (C语言代码)浏览:650 |
蚂蚁感冒 (C语言代码)浏览:1408 |
循环入门练习6 (C语言代码)浏览:1058 |
1054题解浏览:516 |