HDOJ 2098 分拆素数和

简介: HDOJ 2098 分拆素数和

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);
        }
    }
}
目录
相关文章
|
机器学习/深度学习 算法
【算法基础】筛质数
【算法基础】筛质数
74 0
|
算法
初阶OI素数算法——埃拉托尼斯筛
时间复杂度比较优秀且易于理解的素数筛选法
91 0
|
7月前
蓝桥杯动态规划-第五弹 最大子数组和 买卖股票最佳时机IV 第N个泰波那契数 环形数组
蓝桥杯动态规划-第五弹 最大子数组和 买卖股票最佳时机IV 第N个泰波那契数 环形数组
线段树区间修改和点修改 hdoj 1698(区间修改)、hdoj 1754(点修改)
这两题我都在之前做过,但并未通过,那次做的时候是刚开始接触线段树,现在有了一点点的了解,翻出以前的代码稍作修改就AC了。之前1698错误的原因是没有注意到位运算的优先级。
36 0
hdoj 1078 FatMouse and Cheese(记忆化搜索)
简单的记忆化搜索,和其他不一样的地方就是这个一次可以走K步,其他没啥!!
60 0
HDOJ 1397 Goldbach's Conjecture(快速筛选素数法)
HDOJ 1397 Goldbach's Conjecture(快速筛选素数法)
106 0
|
Java
HDOJ 1753 大明A+B(大数~)
HDOJ 1753 大明A+B(大数~)
117 0
HDOJ(HDU) 2138 How many prime numbers(素数-快速筛选没用上、)
HDOJ(HDU) 2138 How many prime numbers(素数-快速筛选没用上、)
107 0
HDOJ 2006 求奇数的乘积
HDOJ 2006 求奇数的乘积
97 0
HDOJ 2021 发工资咯:)(利用了一种取余的思想)
HDOJ 2021 发工资咯:)(利用了一种取余的思想)
196 0