使用 Java 程序检查一个数是否可​​以表示为两个质数之和

在这个程序中,您将学习检查给定的数字是否可以表示为两个质数之和。这是在 Java 中循环和 break 语句的帮助下完成的。

要理解此示例,您应该具备以下 Java 编程的知识:

示例:将一个数表示为两个质数之和

public class Main {

  public static void main(String[] args) {
    int number = 34;
    boolean flag = false;
    for (int i = 2; i <= number / 2; ++i) {

      // condition for i to be a prime number
      if (checkPrime(i)) {

        // condition for n-i to be a prime number
        if (checkPrime(number - i)) {

          // n = primeNumber1 + primeNumber2
          System.out.printf("%d = %d + %d\n", number, i, number - i);
          flag = true;
        }

      }
    }

    if (!flag)
      System.out.println(number + " cannot be expressed as the sum of two prime numbers.");
  }

  // Function to check prime number
  static boolean checkPrime(int num) {
    boolean isPrime = true;

    for (int i = 2; i <= num / 2; ++i) {
      if (num % i == 0) {
        isPrime = false;
        break;
      }
    }

    return isPrime;
  }
}

输出

34 = 3 + 31
34 = 5 + 29
34 = 11 + 23
34 = 17 + 17

在上面的示例中,我们创建了判断数字是否为质数checkPrime() 方法。如果传递的数字是质数,则该方法返回 true

在这里,我们有一个数字 34。该程序尝试检查 34 是否可以表示为两个质数之和。

程序运行步骤:

  • 首先, fori = 2 开始循环直到 number / 2

  • for 循环内部,我们使用了两个 if 语句。第一条语句检查 i 是不是质数。

    如果为真,则第二个 if 语句检查 number - i 是否为质数。这是因为 inumber - i 的和等于 number.

  • 如果第二个语句也是 true ,那么我们可以说数字 34 是两个质数的有效和。