PAT乙级第七题 素数对猜想
原题描述不好写 去原文看吧
#include<cstdio>
#include <cmath>
bool isPrime(int n){//判断素数
if(n<=1) return false;//判断如果小于1 则非素数
int sqr = (int)sqrt(1.0*n);//取平方根
for(int i=2;i<=sqr;i++){
if(n%i==0) return false;//表示已经被整除
}
return true;
}
int main(){
int n,count=0;
scanf("%d",&n);
for(int i=3;i+2 <=n;i+=2){
if(isPrime(i)&&isPrime(i+2)) count ++;
}
printf("%d",count);
return 0;
}
需要注意的点
- 取素数可以先开方 取平方根减少计算量
- 在循环时两个两个循环 保证i为偶数
该博客主要讨论PAT乙级第七题——素数对猜想,强调在解决过程中需要注意的问题,如通过开方取平方根来减少计算量,并采用双循环结构确保遍历的素数为偶数。
683

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



