1. 程式人生 > >PAT乙級1007素數對猜想

PAT乙級1007素數對猜想

題目描述: 讓我們定義d ​n ​​ 為:d ​n ​​ =p ​n+1 ​​ −p ​n ​​ ,其中p ​i ​​ 是第i個素數。顯然有d ​1=1,且對於n>1有d ​n ​​ 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。現給定任意正整數N(<10 ​5 ​​ ),請計算不超過N的滿足猜想的素數對的個數。

輸入格式: 輸入在一行給出正整數N。

輸出格式: 在一行中輸出不超過N的滿足猜想的素數對的個數。

輸入樣例: 20 輸出樣例: 4 程式碼如下:

#include <iostream>
using namespace std;
int main()
{ int n,p[200],flag,k=2,t=0,m=0; cin>>n; for(int i=0;i<n-1;i++) { flag=0; for(int j=2;j<k;j++) { if((k%j)==0) flag=1; } if(!flag) p[t++]=k; k++; } for(int i=0;i<t-1;i++) { if((p[i+1]-p[i]==2)) m++
; } cout<<m; return 0; }

來總結一下: 1)寫的麻煩了,後來才知道直接一個函式判斷是不是素數。