題目描述:
思路:
就是先將10000內的所有素數通過num[10005]陣列進行記錄,陣列的值:0代表是素數,1代表不是素數 。然後在針對對應的偶數進行一半的查詢即可。因為你找到這一半,其實就相當於找到了另乙個,只要用(總值-查詢到的數)就可知另個對應的數了。由於只需要統計個數,所以這個拆分成素數的數字就沒有必要記錄了。ac**:
#include
#include
intmain()
;//0代表是素數,1代表不是素數
num[1]
=1;//1不是素數,故置為1
for(
int i =
2;i <=
10000
;i++)}
}while
(scanf
("%d"
,&n)
!=eof)}
}printf
("%d\n"
,sum);}
return0;
}
分拆素數和 HDU 2098
problem 把乙個偶數拆成兩個不同素數的和,有幾種拆法呢?input 輸入包含一些正的偶數,其值不會超過10000,個數不會超過500,若遇0,則結束。output 對應每個偶數,輸出其拆成不同素數的個數,每個結果佔一行。sample input 30 26 0sample output3 2 ...
分拆素數和 HDU2098
link problem description 把乙個偶數拆成兩個不同素數的和,有幾種拆法呢?input 輸入包含一些正的偶數,其值不會超過10000,個數不會超過500,若遇0,則結束。output 對應每個偶數,輸出其拆成不同素數的個數,每個結果佔一行。sample input 30 26 0...
分拆素數和 HDU 2098
把乙個偶數拆成兩個不同素數的和,有幾種拆法呢?input 輸入包含一些正的偶數,其值不會超過10000,個數不會超過500,若遇0,則結束。output 對應每個偶數,輸出其拆成不同素數的個數,每個結果佔一行。sample input 30 260sample output3 2 題解 先寫乙個函式...