import java.util.Scanner;
import java.lang.Math.*;
class GeDe{ public String getInput(){
Scanner scanner=new Scanner(System.in); //文本输入
return scanner.next();
}//Input() public int testNum(String s){ //testNum验证输入的是否为合法的数字
int input=0;
while(true){
try //try catch进行纠错处理
{
input=Integer.parseInt(s);
break;
}catch(Exception ex) //若字符不合法,返回到scanner继续输入
{
System.out.println("数值不合法");
}
}
return input;
}//testNum()
public void showUI(){ //显示简易控制界面
System.out.println("******************");
System.out.println("按1,回车输入");
System.out.println("按其他键,回车退出");
System.out.println("******************");
}
public boolean isMoreFiveJi(int number){ //判断数是不是大于5的奇数
if(number%2==1&&number>=5)
return true;
else
return false;
}
public boolean is2more(int number){
if(number%2==0&&number>2) return true;
else
return false;
}//is2more public boolean isPrime(int number){ //判断数是不是素数
boolean flag=true;
for(int i=2;i<=number-1;i++){ if(number%i==0||number==1)
flag=false;
}
return flag;
}//isPrime
public void addTherePrime(int evennumber){
for(int i=2;i<=(evennumber/2);i++){
for(int j=2;j<=(evennumber/2);j++){
if(isPrime(i)&&isPrime(j)&&isPrime(evennumber-i-j))
System.out.println(evennumber+"="+i+"+"+j+"+"+(evennumber-i-j));
}
}
} public void addTwoPrime(int evennumber){
for(int i=2;i<=(evennumber/2);i++){ if(isPrime(i)&&isPrime(evennumber-i))
System.out.println(evennumber+"="+i+"+"+(evennumber-i));
}
}//addTwoPrime } public class Goldbach{
public static void main(String[] s){
GeDe gede=new GeDe();
GeDe gd=new GeDe();
while(true){
gede.showUI();
if(gede.getInput().equals("1")){
System.out.println("请输入一个大于5的奇数:");
int m=gede.testNum(gede.getInput()); if(gede.isMoreFiveJi(m)){
gede.addTherePrime(m);
continue;
}
else
System.out.println("输入的数不是大于5的奇数,不合法.请重新输入。"); } gd.showUI();
if(gd.getInput().equals("1")){
System.out.println("请输入一个大于2的偶数:");
int n=gede.testNum(gede.getInput());
if(gede.is2more(n)){
gede.addTwoPrime(n);
continue;
}
else
System.out.println("输入的数不是大于2的偶数,不合法.请重新输入。");} else System.exit(0);
}
} }
import java.lang.Math.*;
class GeDe{ public String getInput(){
Scanner scanner=new Scanner(System.in); //文本输入
return scanner.next();
}//Input() public int testNum(String s){ //testNum验证输入的是否为合法的数字
int input=0;
while(true){
try //try catch进行纠错处理
{
input=Integer.parseInt(s);
break;
}catch(Exception ex) //若字符不合法,返回到scanner继续输入
{
System.out.println("数值不合法");
}
}
return input;
}//testNum()
public void showUI(){ //显示简易控制界面
System.out.println("******************");
System.out.println("按1,回车输入");
System.out.println("按其他键,回车退出");
System.out.println("******************");
}
public boolean isMoreFiveJi(int number){ //判断数是不是大于5的奇数
if(number%2==1&&number>=5)
return true;
else
return false;
}
public boolean is2more(int number){
if(number%2==0&&number>2) return true;
else
return false;
}//is2more public boolean isPrime(int number){ //判断数是不是素数
boolean flag=true;
for(int i=2;i<=number-1;i++){ if(number%i==0||number==1)
flag=false;
}
return flag;
}//isPrime
public void addTherePrime(int evennumber){
for(int i=2;i<=(evennumber/2);i++){
for(int j=2;j<=(evennumber/2);j++){
if(isPrime(i)&&isPrime(j)&&isPrime(evennumber-i-j))
System.out.println(evennumber+"="+i+"+"+j+"+"+(evennumber-i-j));
}
}
} public void addTwoPrime(int evennumber){
for(int i=2;i<=(evennumber/2);i++){ if(isPrime(i)&&isPrime(evennumber-i))
System.out.println(evennumber+"="+i+"+"+(evennumber-i));
}
}//addTwoPrime } public class Goldbach{
public static void main(String[] s){
GeDe gede=new GeDe();
GeDe gd=new GeDe();
while(true){
gede.showUI();
if(gede.getInput().equals("1")){
System.out.println("请输入一个大于5的奇数:");
int m=gede.testNum(gede.getInput()); if(gede.isMoreFiveJi(m)){
gede.addTherePrime(m);
continue;
}
else
System.out.println("输入的数不是大于5的奇数,不合法.请重新输入。"); } gd.showUI();
if(gd.getInput().equals("1")){
System.out.println("请输入一个大于2的偶数:");
int n=gede.testNum(gede.getInput());
if(gede.is2more(n)){
gede.addTwoPrime(n);
continue;
}
else
System.out.println("输入的数不是大于2的偶数,不合法.请重新输入。");} else System.exit(0);
}
} }
public static void main(String []args){
Scanner scan=new Scanner(System.in);
boolean flag=true;
System.out.print("请输入大于5的整数:");
int a=Integer.parseInt(scan.next());
String[] strs=getZiShus(a).split(",");
for(int i=0;i<strs.length;i++){
for(int j=0;j<strs.length;j++){
for(int k=0;k<strs.length;k++){
int x=Integer.parseInt(strs[i]);
int y=Integer.parseInt(strs[j]);
int z=Integer.parseInt(strs[k]);
//System.out.println("x:"+x+"y:"+y+"z:"+z);
if(x+y+z==a){
System.out.println("x="+x+"\ny="+y+"\nz="+z);
flag=false;
break;
}
}
if(!flag){
break;
}
}
if(!flag){
break;
}
}
}
public static String getZiShus(int a){
String ziShus="";
//判断2到数据a本身有多少个质数
for(int i=2;i<=a;i++){
boolean flag=true;
for(int j=2;j<i;j++){
if(i%j==0){
flag=false;
break;
}
}
if(flag){
ziShus+=i+",";
}
//System.out.println(ziShus);
}
ziShus=ziShus.substring(0,ziShus.length()-1);
return ziShus;
}
}
我没有验证。