hdoj 2098 分拆素数和

来源:互联网 发布:诸暨市淘宝司法拍卖 编辑:程序博客网 时间:2024/05/30 18:30

分拆素数和

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


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

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

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

Sample Input
30260

Sample Output
32
打表:
 
#include<stdio.h>#include<string.h>#define max 10000+10int prime[max];void dabiao(){    int i,j;    memset(prime,0,sizeof(prime));    for(i=2;i<max;i++)    {        if(!prime[i])        {            for(j=2*i;j<max;j+=i)            {                prime[j]=1;            }        }    }    prime[1]=1;}int main(){    int n,i,j,sum;    dabiao();    while(scanf("%d",&n)&&(n!=0))    {        sum=0;        for(i=2;i<n/2;i++)        {            if(!prime[i]&&!prime[n-i])            sum++;        }        printf("%d\n",sum);    }    return 0;}

0 0
原创粉丝点击