PAT 乙級 -- 1007 -- 素數對猜想
題目簡述
讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。
現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數對的個數。
輸入格式:每個測試輸入包含1個測試用例,給出正整數N。
輸出格式:每個測試用例的輸出佔一行,不超過N的滿足猜想的素數對的個數。
輸入樣例:
20
輸出樣例:
4
C++程式碼樣例
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <string.h>
using namespace std;
bool isPrime(int p) //素數判定
{
int i = 0;
for(i=2;i<=sqrt(p);i++)
{
if(p%i==0)
{
return false;
}
}
return true;
}
void setPrime(long (&Prime)[10005], const int N) //按照要求在陣列中置素數
{
int p = 1; //素數
int i = 0; //Prime陣列序數
while(1)
{
if(isPrime(p))
{
if(p>N)
{
return;
}else{
Prime[i] = p;
i++;
}
}
p++;
}
return ;
}
void clacBetPrime(long (&Prime)[10005], long (&betPrime)[10005]) //計算素數陣列差值
{
int i = 0, j = 1;
while(Prime[j] != 0)
{
betPrime[i] = Prime[j] - Prime[i];
i++;
j++;
}
return;
}
int main(void)
{
int i=0,j=0;
int N = 0;
int count = 0;
long Prime[10005];
long betPrime[10005];
memset(Prime,0,sizeof(Prime));
memset(betPrime,0,sizeof(betPrime));
scanf("%d",&N);
setPrime(Prime,N);
clacBetPrime(Prime,betPrime);
for(i=0; betPrime[i]!=0; i++)
{
if(betPrime[i] == 2)
{
count++;
}
}
printf("%d",count);
return 0;
}
相關推薦
PAT乙級.1007.素數對猜想 (20)
tdi stdio.h include tin clas 整數 個數 輸出格式 char 讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”
PAT乙級1007素數對猜想
題目描述: 讓我們定義d n 為:d n =p n+1 −p n ,其中p i 是第i個素數。顯然有d 1=1,且對於n>1有d n 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。現給定任意
PAT 乙級 1007 素數對猜想
1007 素數對猜想 (20 point(s)) 讓我們定義dn為:dn=pn+1−pn,其中pi是第i個素數。顯然有d1=1,且對於n>1有dn是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意
PAT 乙級 1007. 素數對猜想 (20)
import java.util.ArrayList; import java.util.List; import java.util.Scanner; /* 1007. 素數對猜想 (20)
PAT乙級—1007. 素數對猜想 (20)-native
讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數
PAT 乙級1007. 素數對猜想 (JAVA版)
讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數
(PAT乙級)1007 素數對猜想
讓我們定義 d~n~ 為:d~n~ = p~n+1~ - p~n~,其中 p~i~ 是第i個素數。顯然有 d~1~=1 且對於n>1有 d~n~ 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整數N (< 10^
PAT 乙級 -- 1007 -- 素數對猜想
題目簡述 讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差
PAT乙級1007 素數對猜想
讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整數N (< 105),請計算不超過N的滿足猜想的素數對的個數。 輸入格式:每個測試輸入包含1個
[PAT乙級]1007. 素數對猜想 (20)
1007. 素數對猜想 (20) 原題連結 讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存
PAT Basic 1007. 素數對猜想 (20) (C語言實現)
, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目讓我們定義 d_n 為:d_n = p_{n+1} - p_n,其中 p_i
PAT刷題集(乙級)1007 素數對猜想 (20)(20 分)
1007 素數對猜想 (20)(20 分) 讓我們定義 d~n~ 為:d~n~ = p~n+1~ - p~n~,其中 p~i~ 是第i個素數。顯然有 d~1~=1 且對於n>1有 d~n~ 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整
PAT乙級:1007. 素數對猜想 (Java)
本題不難,重在理解題意中N的含義。此處N的意思為最大的素數不超過N。我們最平常的思路如下:先將所有的小於N的素數算出,再找相鄰差為2的: import java.util.ArrayList; import java.util.List; i
(PAT乙級)1007 素數對猜想(C語言實現)
總結:關鍵在於判斷是不是素數的程式碼段可以作為常識記憶,即: for(i=3;i<=n;i++) { k=sqrt(i); for(j=2;j<=k;j++) { if(i%j==0) break;
PAT 1007. 素數對猜想
data- 輸出 1=1 rac tro mes main spl pan 1007. 素數對猜想 (20) 讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無窮
PAT(Basic Level) Practice——1007 素數對猜想
原題目: 讓我們定義dn為:dn=pn+1−pn,其中pi是第i個素數。顯然有d1=1,且對於n>1有dn是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整數N(<105),請計算不超過N的滿足猜想的
PAT-乙-1007 1007 素數對猜想 (20 分)
程式碼 #include <stdio.h> #include <string.h> #define MAX 100001 int isPrime[MAX]; int sum[MAX]; void selectPrime(){
PAT-1007 素數對猜想
1007 素數對猜想 (20 分) 讓我們定義dn為:dn=pn+1−pn,其中pi是第i個素數。顯然有d1=1,且對於n>1有dn是偶數。“素數對猜想
PAT 1007. 素數對猜想 python 執行超時問題解決方案
原問題 https://www.patest.cn/contests/pat-b-practise/1007 讓我們定義 dn 為:dn = pn+1 - pn,其中 pi 是第i個素數。顯然有 d1=1 且對於n>1有 dn 是偶數。“素數對猜想”認為“存在無
PAT (Basic Level) Practice (中文) 1007 素數對猜想 (20 分) (C++)
1007 素數對猜想 (20 分) 讓我們定義dn為:dn=pn+1 −pn,其中pi是第i個素數。顯然有d1=1,且對於n>1有dn 是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整數N(<105 ),請計算不超過N的滿足猜想的素