|
发表于 2021-4-4 18:36:27
|
显示全部楼层
本帖最后由 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();
- }
复制代码 |
|