这题一开始我想的是:先找出不超过n的所有的素数,把这些素数用一个数组保存起来。再把相邻的数组元素相减,找到差为2的素数对。后来发现用数组保存再算麻烦,还是求出一个素数计算一次吧。
这题目前我超时了(最后一个2分的测试点没过),还不明白超时在哪,暂且放在这
#include<stdio.h>
int IsPrimeNumber(int i){
for(int j = 2; j < i; j++){
if(i%j==0) return 0;
}
return 1;
}
int main(){
int n,count = 0;
int x = 2,y = 3;
scanf("%d",&n);
for(int i = 4; i <= n; i++){
if(IsPrimeNumber(i)){
x=y;
y=i;
if(y-x==2) count++;
}
}
printf("%d\n",count);
return 0;
}