1. 程式人生 > >1007. 素數對猜想 (20) (數學啊 ZJU_PAT)

1007. 素數對猜想 (20) (數學啊 ZJU_PAT)

讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。

現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數對的個數。

輸入格式:每個測試輸入包含1個測試用例,給出正整數N。

輸出格式:每個測試用例的輸出佔一行,不超過N的滿足猜想的素數對的個數。

輸入樣例:
20
輸出樣例:
4

程式碼如下:

#include <cstdio>
#include <cstring>
#include <cmath>
int is_prim(int x)
{
	int i;
	int m = sqrt(x);
	for(i = 2; i <= m; i++)
	{
		if(x%i == 0)
			break;
	}
	if(i > m)
		return 1;
	return 0;
}
int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		int k = 0;
		int t1 = 2, t2;
		for(int i = 3; i <= n; i++)
		{
			if(is_prim(i))
			{
				t1 = t2;
				t2 = i;
				if(t2 - t1 == 2)
				{
					k++;
				}
			}
		}
		printf("%d\n",k);
	}
	return 0;
}