输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
#include <stdio.h>
_Bool is_prime(unsigned int);
int main(void)
{
unsigned int n, ans = 0, prime_num = 0;
if (scanf("%u", &n) != 1)
return 0;
unsigned int prime[(n/10+1)*4];
// find prime
for (unsigned int i = 2; i <= n; ++i)
{
if (is_prime(i))
{
prime[prime_num++] = i;
}
}
// find prime pair
for (unsigned int i = 0; i != prime_num; ++i)
{
if (prime[i+1]-prime[i] == 2)
++ans;
}
printf("%u", ans);
return 0;
}
_Bool is_prime(unsigned int n)
{
for (unsigned int i = 2; i*i <= n; ++i)
{
if (!(n % i))
return 0;
}
return 1;
}