写出代码java:输入一个大于等于4的偶数n,可以分解成两个质数的和。使得两个质数的差尽量小
时间: 2024-03-17 20:46:21 浏览: 88
任意输入一个偶数n(n>4),请将它分解为两个素数之和。
以下是Java的代码实现:
```java
import java.util.Scanner;
public class Main {
public static boolean isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if (n < 4 || n % 2 != 0) {
System.out.println("输入错误!");
return;
}
int half_n = n / 2;
for (int i = half_n; i >= 2; i--) {
if (isPrime(i) && isPrime(n - i)) {
System.out.println(i + " " + (n - i));
break;
}
}
}
}
```
代码实现思路与Python版类似,主要区别在于语法上的差异。具体实现过程如下:
1. 判断输入是否合法,即n必须大于等于4且为偶数;
2. 从大于等于n/2的质数开始循环,如果找到两个质数的和等于n,则输出;
3. 因为要让两个质数的差尽量小,所以从大的质数开始往下找,找到第一个符合条件的就输出并结束循环。
阅读全文