心得:把一些思路理清楚就好了,剩下的就是细心和分类讨论。
/*
* 日期:2019.7.7
* 作者:城主
* 题目:哥德巴赫猜想(升级版)
* 思路:输出式子是由三个质数构成,且要求
* 第一个质数最小的基础上,第二个质
* 数最小,从2开始,用两个for循环,
* 判断三个数是否都是质数,满足条件
* 做好标记,若满足直接输出,退出循环
*/
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;
import java.awt.*;
public class happ {
static boolean isPrime(int number)
{
if(number==2)
{
return true;
}
if(number%2==0)
{
return false;
}
for(int i=3;i<=(int)Math.sqrt(number);i+=2)
{
if(number%i==0)
{
return false;
}
}
return true;
}
public static void main(String args[])
{
Scanner scan=new Scanner(System.in);
int number=scan.nextInt();
int flag=0;
for(int i=2;i<=number-4;i++)
{
for(int j=i;j<=number-i;j++)
{
if(isPrime(i)&&isPrime(j)&&isPrime(number-i-j))
{
flag=1;
System.out.println(i+" "+j+" "+(number-i-j));
}
if(flag==1)
{
break;
}
}
if(flag==1)
{
break;
}
}
scan.close();
}
}