下面是我写的:
#include<cstdio>
#include<cmath>
int isprime(int n){
int temp=sqrt(n);
for(int i=2;i<=temp;i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main(){
int n,temp=2,count=0;
scanf("%d",&n);
for(int i=3;i<=n;i++){
if(isprime(i)){
if(i-temp==2){
count++;
}
temp=i;
}
}
printf("%d",count);
return 0;
}
这个是一个女神写的
#include <iostream>
using namespace std;
bool isprime(int a) {
for (int i = 2; i * i <= a; i++) {
if (a % i == 0)
return false;
}
return true;
}
int main() {
int N;
cin >> N;
int cnt = 0;
for (int i = 5; i <= N; i++) {
if (isprime(i-2) && isprime(i))
cnt++;
}
cout << cnt;
return 0;
}
差距呀
总结:求平方差时可以直接 i*i不用sqrt,i<=sqrt(n) 差距呀