hdu1262詳細題解

2021-10-08 17:50:51 字數 810 閱讀 5903

problem description

哥德**猜想大家都知道一點吧.我們現在不是想證明這個結論,而是想在程式語言內部能夠表示的數集中,任意取出乙個偶數,來尋找兩個素數,使得其和等於該偶數.

做好了這件實事,就能說明這個猜想是成立的.

由於可以有不同的素數對來表示同乙個偶數,所以專門要求所尋找的素數對是兩個值最相近的.

input

輸入中是一些偶整數m(5output

對於每個偶數,輸出兩個彼此最接近的素數,其和等於該偶數.

sample input

20 30 40

sample output

7 13

13 17

17 23

分析:首先要找出所有的素數,之後再判斷vis[i]與vis[a-i]是否都為素數,這樣做的原因是在埃式篩法中,vis陣列在篩法後會生成乙個陣列,其下標為自然數,vis代表了是否為素數,因此只要vis陣列的下標加起來為偶整數,且兩個vis的值均為0(為素數)就可以判斷,與此同時從a/2開始遍歷可以加快速度。

#include

using

namespace std;

const

int maxn=

10010

;int vis[maxn]

,prime[maxn]

;int sum;

void

e_sieve()

for(i=

2;i*i<=maxn;i++)}

}}intmain()

}}return0;

}

HDU1262 尋找素數對

description 哥德 猜想大家都知道一點吧.我們現在不是想證明這個結論,而是想在程式語言內部能夠表示的數集中,任意取出乙個偶數,來尋找兩個素數,使得其和等於該偶數.做好了這件實事,就能說明這個猜想是成立的.由於可以有不同的素數對來表示同乙個偶數,所以專門要求所尋找的素數對是兩個值最相近的.i...

HDU 1262 尋找素數對

哥德 猜想大家都知道一點吧.我們現在不是想證明這個結論,而是想在程式語言內部能夠表示的數集中,任意取出乙個偶數,來尋找兩個素數,使得其和等於該偶數.做好了這件實事,就能說明這個猜想是成立的.由於可以有不同的素數對來表示同乙個偶數,所以專門要求所尋找的素數對是兩個值最相近的.輸入中是一些偶整數m 5 ...

HDU 1262 尋找素數對

哥德 猜想大家都知道一點吧.我們現在不是想證明這個結論,而是想在程式語言內部能夠表示的數集中,任意取出乙個偶數,來尋找兩個素數,使得其和等於該偶數.做好了這件實事,就能說明這個猜想是成立的.由於可以有不同的素數對來表示同乙個偶數,所以專門要求所尋找的素數對是兩個值最相近的.輸入中是一些偶整數m 5對...