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为偶数