53:验证“歌德巴赫猜想”
描述
验证“歌德巴赫猜想”,即:任意一个大于等于6的偶数均可表示成两个素数之和。
输入
输入只有一个正整数x。(x<=2000)
输出
如果x不是“大于等于6的偶数”,则输出一行:Error!否则输出这个数的所有分解形式,形式为:x=y+z其中x为待验证的数,y和z满足y+z=x,而且y<=z,y和z均是素数。如果存在多组分解形式,则按照y的升序输出所有的分解,每行一个分解表达式。注意输出不要有多余的空格。
样例输入
输入样例1:
7
输入样例2:
10
输入样例3:
100
样例输出
输出样例1:
Error!
输出样例2:
10=3+7
10=5+5
输出样例3:
100=3+97
100=11+89
100=17+83
100=29+71
100=41+59
100=47+53
代码
import java.util.*;
import java.math.*;
public class Main
{
static boolean check(double x)
{
int i;
int node = (int)Math.sqrt(x);
for(i = 2; i <= node; i++)
{
if(x % i == 0)
break;
}
if(i > node)
return true;
return false;
}
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
int x = cin.nextInt();
for(int i = 2; i <= (x/2); i++)
{
if(x < 6 || x % 2 != 0)
{
System.out.println("Error!");
break;
}
int tmp = x - i;
if(check(tmp) == true && check(i))
System.out.println(x + "=" + i + "+" +tmp);
}
}
}


被折叠的 条评论
为什么被折叠?



