hdu 2098 分拆素数和

本题链接:点击打开链接

分拆素数和

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 38816    Accepted Submission(s): 16977


Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
 


 

Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
 


 

Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
 


 

Sample Input
 
   
30 26 0
 


 

Sample Output
 
   
3 2
 


 

Source
2007省赛集训队练习赛(2)
 


 

Recommend
lcy   |   We have carefully selected several similar problems for you:   2084  2093  2138  2094  2076 
 
解题思路: 这题不难,闲来无事敲着玩玩,只是可能费时比较高,我以前做的用了300多ms,当时还做了好久才搞懂,现在再用打表的方法做了一下就0ms了。
 
 
以前的代码:
#include 
#include
int sushu(int t)
{
    int j;
        for(j=2;j<=sqrt(t);j++)
        if(t%j==0)
        return 0;
     return 1;
}
int main()
{
    int t,a,b,k,i;
    while(~scanf("%d",&t)&&t)
    {
        k=0;
        for(i=3;i

现在的代码:
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=10000+10;
bool a[maxn];
void sushu()
{
    memset(a,true,sizeof(a));
    for(int i=2; i

反正大家看看就好,水题就不啰嗦了,代码相信大家都懂。

你可能感兴趣的:(杭电,hdu,ACM_HDU_水,ACM--HDOJ刷题集)