2.13 编程验证哥德巴赫猜想。
(1)任何大于2的偶数都可以表示为两个素数之和,如16=3+13,16=5+11。
(2)任何大于5的奇数都可以表示3个素数之和,如11=2+2+7,11=3+3+5。
(1)任何大于2的偶数都可以表示为两个素数之和,如16=3+13,16=5+11。
(2)任何大于5的奇数都可以表示3个素数之和,如11=2+2+7,11=3+3+5。
调试欢乐多
public class Lx { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int m;
Scanner s = new Scanner(System.in);
System.out.print("请输入大于2偶数或者大于5的奇数:");
m = s.nextInt();
int prime[]=new int[m];
prime[0]=2;
int n=1;
int i=1;
int k=3;
do
{
int j = 0;
while(j<n && k%prime[j]!=0)
j++;
if(j==n)
{
prime[i]=k;
i++;
n++;
}
k+=2;
}while(k<m);
if(m%2==0&&m>2)
{
System.out.println("你输入的数为偶数!");
int x=0;
int y=0;
boolean isSuccessful;
for(x=0;x<prime.length;x++)
{
isSuccessful = false;
for(y=0;y<prime.length;y++)
{
if(m==prime[x]+prime[y])
{
isSuccessful=true;
break;
}
else
continue;
}
if(isSuccessful)
break;
}
int a = prime[x];
int b = prime[y];
System.out.println("m两素数相加为:"+a+"+"+b);
}
else if(m!=0&&m>5)
System.out.println("你输入的数为奇数!");
else
System.out.println("请输入正确的数:"); } }
偶数已经解决。请大家帮忙解决 奇数的情况