歌德巴赫猜想
编写函数isPrime(long n),说明如下:函数的功能是判断给定的正整数n是否为素数,函数的返回值1/0表示n是/不是素数。
编写main()函数,调用isPrime()验证歌德巴赫猜想:任意一个大偶数都能分解为两个素数的和。
第一行1个整数m(100 > m >0),表示有多少组数据。 其后一行为m个正偶数,表示m个数据。
每行输出2个数据表示分解的素数(每个正偶数可能分解成多组素数和,仅输出分解值分别是最小和最大素数的一组,从小到大输出),换行。
输入样例
2
10 20
输出样例
3 7
3 17
#include<stdio.h>
int fun(int a)
{
if (a < 2)
return 0;
else
{
for (int i = 2; i < a / 2; i++)
if (a%i == 0)
return 0;
}
return 1;
}
int main()
{
int n, m;
int a, b,j;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &m);
for (j = 2; j < m / 2; j++)
{
a = fun(j);
b = fun(m - j);
if (a == 1 && b == 1)
{
printf("%d %d\n", j, m - j);
break;
}
}
}
return 0;
}