http://pat.zju.edu.cn/contests/pat-b-practise/1007
讓我們定義 dn 爲:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認爲“存在無窮多對相鄰且差爲2的素數”。
現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數對的個數。
輸入格式:每個測試輸入包含1個測試用例,給出正整數N。
輸出格式:每個測試用例的輸出佔一行,不超過N的滿足猜想的素數對的個數。
輸入樣例:20輸出樣例:
4
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int is_prime(int n)
{
if (n == 2)
return 1;
if (n%2 == 0 || n < 2)
return 0;
int tmp = (int)sqrt(n);
int i;
for (i = 3; i <= tmp; i += 2)
if (n%i == 0)
return 0;
return 1;
}
int main()
{
int N, cnt = 0;
scanf("%d", &N);
int i;
for (i = 3; i <= N-2; i++)
{
if (is_prime(i) && is_prime(i+2))
{
cnt++;
}
}
printf("%d\n", cnt);
return 0;
}