一定要记录下来,刚开始没有做素数判断的优化,超时
判断素数优化的方式是根号法,如果一个数不能被[2, 根号x] 之间的数字整除,则可以判断为素数
import java.util.Scanner;
//大于4的整数都可以用两个质数的和来表示
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
Main m = new Main();
while(s.hasNext()){
int num = s.nextInt();
if(num == 0) {
System.exit(0);
}
boolean flag = false;
for(int i = 3; i <= (num / 2); i++){
if(m.isPrime(i) && m.isPrime(num - i)){
System.out.println(num+" = "+i+" + "+(num - i));
flag = true;
break;
}
}
if(!flag){
System.out.println("Goldbach's conjecture is wrong.");
}
}
}
public boolean isPrime(int num){
boolean isPrime = true;
if(num / 2 == 0){
isPrime = false;
}else{
for(int i = 2; i * i <= num; i++){
if(num % i == 0){
isPrime = false;
break;
}
}
}
return isPrime;
}
}