本帖最后由 yuxijian2020 于 2021-4-4 18:38 编辑 #include <stdio.h>
#define bool int
#define true 1
#define false 0
//计算素数
bool PrimeNumber(unsigned int n)
{
for (int i = n - 1; i > 1; i--)
{
if (n % i == 0)
return false;
}
return true;
}
//哥德巴赫猜想计算
void Goldbach(unsigned int n)
{
int index = 0; //用于每行显示5条结果
for (int i = n - 1; i > 1; i--)
{
if (!PrimeNumber(i) || !PrimeNumber(n - i)) //如果i不是素数,或者n - i不是素数,就直接跳过
continue;
printf_s("%3d + %3d = %3d", i, n - i, n);
index++;
if (index % 5 != 0)
printf_s("\t");
else
{
printf_s("\n");
}
}
}
void GetInputAndPrint()
{
int X = 0;
while (X <= 6) //如果输入的数小于等于6就重新输入
{
printf_s("请输入一个大于6的数:\n");
scanf_s("%d", &X);
if (X <= 6)
printf_s("输入错误!请确保输入的数大于6!\n");
}
Goldbach(X);
}
int main()
{
GetInputAndPrint();
}
|