PAT乙級—1007. 素數對猜想 (20)-native
阿新 • • 發佈:2019-01-05
讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。
現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數對的個數。
輸入格式:每個測試輸入包含1個測試用例,給出正整數N。
輸出格式:每個測試用例的輸出佔一行,不超過N的滿足猜想的素數對的個數。
輸入樣例:
20
輸出樣例:
4
思路:先找出不超過n的所有素數放在一個數組中,在對這個陣列遍歷,相鄰兩個素數差為2即一個素數對。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,k=0;
int a[100000];
cin>>n;
int j;
for(int i=2;i<=n;i++)
{
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
break;
}
if(j>sqrt(i))
{
a[k++]=i;
}
}
int prime=0;
for(int i=0;i<k;i++)
{
if(a[i+1]-a[i]==2)
{
prime++;
}
}
cout<<prime;
return 0;
}
題目連結: