題目描述:
讓我們定為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
解題思路:
? 判斷從1到N正整數中的素數,將其存放到陣列中并同時計數,
? 然后將陣列遍歷,判斷符合條件的素數對,并計數,
代碼:
#include <iostream>
#include <cmath>
using namespace std;
int isprime(int n)//判斷n是否為素數
{
if (n <= 1)
return 0;
if (n == 2)
return 1;
if (n % 2 == 0)
return 0;
else
{
for (int i = 2; i <= sqrt(n) + 1; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
}
int arr[100010];
int main()
{
int n,num=0,count=0;
cin >> n;
for (int i = 1; i <= n; i++)
{
if (isprime(i) == 1)//如果i為素數,則記錄素數的個數,并將其存放到陣列對應的空間中
{
num++;
arr[num] = i;
}
}
for (int i = 1; i+1 <= num; i++)
{
if (arr[i + 1] - arr[i] == 2)//判斷是否符合條件
{
count++;
}
}
cout << count;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413016.html
標籤:其他
上一篇:7-1 列印沙漏
