素数对猜想(C语言实现)
题目如下

我的大致思路为:用一个函数判断当前传入的数是否为素数,如果是就返回1,不是素数则返回0。然后主函数中从1到N循环,用一个tmp变量保存上一个素数,之后如果判断到当前数为素数,便和上一个素数相减判断差是否为2,如果是则计数count变量+1,这样循环完就能得到素数对个数了。
代码如下:
#include<stdio.h>
#include<math.h>
// 判断素数函数,如果是返回1,不是则返回0
int prime(int n){
int i;
if(n<=2) return 1; // 1和2是素数
else{
// 从2开始循环到sqrt(n)判断判断是否能被整除,如果有则不是素数返回0
for(i=2;i<=(sqrt(n));i++){
if (n % i == 0) return 0;
}
return 1;
}
}
int main(){
int N,j,tmp=0,count=0;
scanf("%d",&N);
for(j=1;j<=N;j++){
if(prime(j)){
if((j-tmp)==2) count++;
tmp=j;
}
}
printf("%d",count);
return 0;
}
如果对你有帮助的话记得点赞哦!
&spm=1001.2101.3001.5002&articleId=121123888&d=1&t=3&u=0f152deecb454e31a045a6e9a94a31b3)
1518

被折叠的 条评论
为什么被折叠?



