PAT B1007 素数对猜想 (20 分)
生活随笔
收集整理的這篇文章主要介紹了
PAT B1007 素数对猜想 (20 分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
讓我們定義d?n??為:d?n??=p?n+1???p?n??,其中p?i??是第i個素數。顯然有d?1??=1,且對于n>1有d?n??是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。
現給定任意正整數N(<),請計算不超過N的滿足猜想的素數對的個數。
輸入格式:
輸入在一行給出正整數N。
輸出格式:
在一行中輸出不超過N的滿足猜想的素數對的個數。
輸入樣例:
20輸出樣例:
4 #include <stdio.h> #include <algorithm> #include <string> #include <map> #include <iostream> #include <stack> #include <math.h> using namespace std; const int maxn = 100010; int index[maxn] = { 0 }; bool isPrime(int i){for (int k = 2; k <= sqrt(i); k++){if (i%k == 0)return false;}return true; } int main(){int n, count = 0;cin >> n;if (n == 1 || n == 2){cout << '0';return 0;}for (int i = 2; i <= n; i++){if (isPrime(i)){index[i] = 1;}}for (int i = 2; i <= n-2; i++){if(index[i]==1 && (index[i + 2] - index[i] == 0))count++;}cout << count;system("pause"); }注意點:素數的判定一直是一個重點,本以為判斷到平方根也會超時,結果沒有還算好,有時間要去看一下時間復雜度最低的素數判定方法。這里我是把所有素數都存起來,用了hash,也可以生成一個判斷一個,可以省點內存。
轉載于:https://www.cnblogs.com/tccbj/p/10359177.html
總結
以上是生活随笔為你收集整理的PAT B1007 素数对猜想 (20 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scrapy 框架入门
- 下一篇: json字符串与java对象的相互转换(