编写程序验证哥德巴赫猜想第二部分,每个大于等于9的奇数都可表示为3个奇素数之和。将大于等于9的奇数分解为三个奇素数之和写成一个函数,从键盘输入任一大于等于9的奇数,调用该函数,在函数中输出这三个奇素数,例如输入9,输出9=3+3+3。
#include <stdio.h>
int IsPrime(int x)
{
for (int i = 2; i <= sqrt(x); i++)
{
if (x % i == 0)
{
return 0;
}
}
return 1;
}
int main()
{
int n = 0;
scanf("%d",&n);
// 建立一个数组用于存储所有小于n的素数
int arr[1000] = {0};
// size记录素数的个数,同时做数组下表
int size = 0;
// 找小于n的所有素数
for (int i = 3; i < n; i++)
{
if (IsPrime(i) == 1)
{
arr[size] = i;
size++;
}
}
for (int x = 0; x < size; x++)
{
for (int y = 0; y < size; y++)
{
for (int z = 0; z < size; z++)
{
if (arr[x] + arr[y] + arr[z]
== n)
{
printf("%d=%d+%d+%d\n",n,arr[x],arr[y],arr[z]);
goto end;
}
}
}
}
end:
return 0;
}