范闲


私信TA

用户名:541913460754

访问量:3520

签 名:

等  级
排  名 12104
经  验 990
参赛次数 1
文章发表 9
年  龄 0
在职情况 学生
学  校 郑州轻工业大学
专  业

  自我简介:

解题思路:先写一个判断是否是素数的函数,接下来就好做了

素数是只能被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 人评分

  评论区

  • «
  • »