现在的位置: 首页 > 综合 > 正文

HDU 2098 分拆素数和

2013年09月22日 ⁄ 综合 ⁄ 共 748字 ⁄ 字号 评论关闭

分拆素数和

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


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


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


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


Sample Input
30 26 0
 


Sample Output
3 2
 

 

import java.io.*;
import java.util.*;
public class Main {
	Scanner sc;
	int n,count=0;
	public static void main(String[] args) {
		new Main().work();
	}
	void work(){
		sc=new Scanner(new BufferedInputStream(System.in));
		while(sc.hasNext()){
			count=0;
			n=sc.nextInt();
			if(n==0) break;
			getNumber(n);
		}
	}
	void getNumber(int n){
		for(int i=2;i<n/2;i++){
			if(isPrimer(i)&&isPrimer(n-i))
				count++;
		}
		System.out.println(count);
	}
	
	boolean isPrimer(int n){
		for(int i=2;i<=Math.sqrt(n);i++){
			if(n%i==0)
				return false;
		}
		return true;
	}
}

 

抱歉!评论已关闭.