用C语言 验证哥德巴赫猜想
【问题描述】哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和。要求验证a~b之间的全部偶数,6 <= a < b <= 2000。
【输入形式】a b两个数字
【输出形式】按行输出,每行如6 = 3 + 3,前一个素数尽可能小。
【样例输入】
6 10
【样例输出】
6 = 3 + 3
8 = 3 + 5
10 = 3 + 7
【样例说明】注意输出中的空格。
用C语言 验证哥德巴赫猜想
【问题描述】哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和。要求验证a~b之间的全部偶数,6 <= a < b <= 2000。
【输入形式】a b两个数字
【输出形式】按行输出,每行如6 = 3 + 3,前一个素数尽可能小。
【样例输入】
6 10
【样例输出】
6 = 3 + 3
8 = 3 + 5
10 = 3 + 7
【样例说明】注意输出中的空格。
int IsPrime (int x)
{
int b = 0, c = 0;
b = sqrt (x);
for (c = 2; c <= b; c++) {
if (x % c == 0){
return 0;
}
}
return 1;
}
int GetOutput(int x)
{
int i = 0;
for (i=3; i<=x/2; i++){
if (IsPrime(i) && IsPrime(x-i)){
printf ("%d = %d + %d\n", x, i, x-i);
break;
}
}
}
int main()
{
int a = 0, b = 0, x = 0;
printf ("Please input a b:\n");
scanf("%d %d", &a, &b);
if (a<6 || a>2000 || a>=b || b<6 || b>2000){ printf ("Input out of range\n");
return -1;
}
for (x=a; x<=b; x++){
if (x%2){
continue;
}
GetOutput(x);
}
return 0;
}