自己写的验证哥德巴赫猜想,马马虎虎哈
/*验证歌德巴赫猜想,输入一个大于6的偶数,请输出这个偶数能被分解为哪两个质数的和如 10=3+7 12=5+7
输入一个大于9的奇数,请输出这个偶数能被分解为哪三个质数的和
如 11=2+2+7,11=3+3+5
质数:除了1和自身,不能被任何数整除的数*/import java.util.Scanner;
class Goldbach
{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.print("请输入一个大于6的偶数 :");
int n=scan.nextInt();
for(int i=3;i<(n/2);){
if(prime(i)&&(prime(n-i))){
System.out.println(n+"分解为两个质数之和为:"+i+"+"+(n-i));
}
i+=2;
}
System.out.print("请输入一个大于9的奇数 :");
n=scan.nextInt();
for(int a=2;a<(n/2);a++){
for(int b=2;b<(n/2);b++){
if(prime(b)){
if((a<=b)&&(b<=(n-a-b))&&prime(a)&&prime(n-a-b))System.out.println(n+"分解为三个质数之和为:"+a+"+"+b+"+"+(n-a-b));
}
}
}
}
//判断是否是质数
public static boolean prime (int n)
{
for(int i=2;i<=Math.sqrt(n);i++)
{ // 因为判断一个数是否是质数只需循环到一个数的平方根
if (n%i == 0) return false;
}
return true;
}
}