HDOJ 2098 分拆素数和

简介: Problem Description 把一个偶数拆成两个不同素数的和,有几种拆法呢?Input 输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。

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

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

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

Sample Input
30
26
0

Sample Output
3
2

素数打表法!

import java.util.Scanner;

public class Main {
    static int[] a = new int[10001];

    public static void main(String[] args) {
        a[1]=1;
        a[2]=0;
        a[3]=0;
        //打表,将是i是素数的a[i]标志为0;不是素数标志为1;
        for(int i=4;i<10000;i++){
            for(int j=2;j<=Math.sqrt(i);j++){
                if(i%j==0){
                    a[i]=1;
                }
            }
        }


        Scanner sc =new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            if(n==0){
                return ;
            }
            int k=0;
            for(int i=1;i<n/2;i++){
                if(a[i]==0&&a[n-i]==0)
                //n = i+(n-i);
                    k++;
            }

            System.out.println(k);
        }

    }

}
目录
相关文章
HDOJ 2098 分拆素数和
HDOJ 2098 分拆素数和
94 0
|
JavaScript 前端开发 Java
使用ES5,ES6和SAP ABAP实现非波拉契数列Fibonacci
使用ES5,ES6和SAP ABAP实现非波拉契数列Fibonacci
125 0
使用ES5,ES6和SAP ABAP实现非波拉契数列Fibonacci
HDOJ 1164 Eddy's research I(拆分成素数因子)
HDOJ 1164 Eddy's research I(拆分成素数因子)
89 0
|
Java
HDOJ/HDU 5686 Problem B(斐波拉契+大数~)
HDOJ/HDU 5686 Problem B(斐波拉契+大数~)
97 0
|
Go
HDOJ/HDU 1133 Buy the Ticket(数论~卡特兰数~大数~)
HDOJ/HDU 1133 Buy the Ticket(数论~卡特兰数~大数~)
101 0
|
Java
HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)
HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)
97 0
HDOJ 1397 Goldbach's Conjecture(快速筛选素数法)
HDOJ 1397 Goldbach's Conjecture(快速筛选素数法)
95 0
|
Java
HDOJ 1753 大明A+B(大数~)
HDOJ 1753 大明A+B(大数~)
106 0
HDOJ(HDU) 2521 反素数(因子个数~)
HDOJ(HDU) 2521 反素数(因子个数~)
105 0
HDOJ(HDU) 2504 又见GCD(利用最大公约数反推)
HDOJ(HDU) 2504 又见GCD(利用最大公约数反推)
104 0