HDU 2098 分拆素数和

2022-04-05  本文已影响0人  itbird01

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

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

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

Sample Input

30 26 0

Sample Output

3 2
java code

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 用hasnextint,不然会error
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            if (n == 0) {
                break;
            }
            int number = 0;
            // 两个不同的素数
            for (int i = 2; i < n / 2; i++) {
                if (isSuShu(i) && isSuShu(n - i)) {
                    number++;
                }
            }
            System.out.println(number);
        }
        scanner.close();
    }
    //判断素数的方法
    public static boolean isSuShu(int n) {
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }

}```
上一篇 下一篇

猜你喜欢

热点阅读