explanation
- 理解题意
- 判断素数:判断n是否能被 2~ n \sqrt n n 之间的整数除(空间复杂度较低)
code
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int isPrime(int n)
{
int j;
for ( j=2; j<=sqrt(n); j++ ) //判断n是否能被2~√n间的整数除
{
if(n%j==0) // 如果不为素数返回0
return 0;
}
return 1; // 反之则返回1
}
int main(int argc, char *argv[]) {
int i;
int N;
int sum=0;
scanf("%d", &N);
for(i=2; i<=N-2; i++){ //i<=N-2是为了限制下面if语句中的i+2不大于N
if(isPrime(i)&&isPrime(i+2))
sum++;
}
printf("%d", sum);
return 0;
}