HDOJ 2098 分拆素数和

来源:互联网 发布:济南婚纱摄影 知乎 编辑:程序博客网 时间:2024/05/31 06:21

题目链接:点击打开链接

注意超时问题,因为题目给出数据较大

分拆素数和

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


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

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

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

Sample Input
30260
 

Sample Output
32
/*打表技术:先找出10000以内的素数*/import java.util.*;class Main{public static void main(String args[]){Scanner sc=new Scanner(System.in);//素数打表boolean a[]=new boolean[10001];a[1]=false;a[2]=true;for(int i=3;i<=10000;i++){a[i]=true;}for(int i=2;i<=10000;i++){for(int j=2*i;j<=10000;j+=i){a[j]=false;}}while(sc.hasNext()){int n=sc.nextInt();if(n==0){break;}int sum=0;for(int i=2;i<=n/2;i++){if(a[i]&&a[n-i]){sum++;}}if(n%2==0&&a[n/2]){sum--;}System.out.println(sum);}}}

0 0
原创粉丝点击