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);
        }
    }
}
目录
相关文章
|
9月前
|
BI 测试技术 Windows
【数位】【数论】【分类讨论】2999. 统计强大整数的数目
【数位】【数论】【分类讨论】2999. 统计强大整数的数目
|
9月前
|
算法 测试技术 C#
【动态规划】【同余前缀和】【多重背包】[推荐]2902. 和带限制的子多重集合的数目
【动态规划】【同余前缀和】【多重背包】[推荐]2902. 和带限制的子多重集合的数目
|
9月前
|
Java C++
数的范围(考查二分)
数的范围(考查二分)
60 0
|
9月前
|
机器学习/深度学习 算法 测试技术
【动态规划】【子数组划分】【前缀和】1977. 划分数字的方案数
【动态规划】【子数组划分】【前缀和】1977. 划分数字的方案数
|
9月前
|
算法 测试技术 C++
【状态压缩 容斥原理 组合数学】3116. 单面值组合的第 K 小金额
【状态压缩 容斥原理 组合数学】3116. 单面值组合的第 K 小金额
|
9月前
自然数的拆分问题
自然数的拆分问题
39 0
|
9月前
|
人工智能 算法
前缀和算法题(区间次方和、小蓝平衡和、大石头的搬运工、最大数组和)
前缀和算法题(区间次方和、小蓝平衡和、大石头的搬运工、最大数组和)
|
9月前
|
算法 测试技术 C++
【组合数学】【动态规划】【前缀和】1735生成乘积数组的方案数
【组合数学】【动态规划】【前缀和】1735生成乘积数组的方案数
|
9月前
leetcode-372:超级次方(快速幂的实现以及取余的规则和推导)
leetcode-372:超级次方(快速幂的实现以及取余的规则和推导)
68 0