使用 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 是否可以表示为两个质数之和。
程序运行步骤:
-
首先,
for
从i = 2
开始循环直到number / 2
。 -
在
for
循环内部,我们使用了两个if
语句。第一条语句检查i
是不是质数。如果为真,则第二个
if
语句检查number - i
是否为质数。这是因为i
和number - i
的和等于number
. -
如果第二个语句也是
true
,那么我们可以说数字 34 是两个质数的有效和。