验证 哥德巴赫猜想(两种)
(A)
任一大于2的偶数(即大于等于4的偶数),都可表示成两个素数之和。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int iszhi(int number)
{
if (number <= 1)
{
return 0;
}
else if (number == 2 || number == 3)
{
return 1;
}
else
{
int flag = 1;
for (int i = 2; i < number - 1; i++)
{
if (number%i == 0)
{
flag = 0;
break;
}
}
return flag;
}
}
int isou(int number)
{
int flag = 0;
if (number % 2 == 0)
{
flag = 1;
}
return flag;
}
void main1()
{
puts("请输入一个大于等于4的偶数:");
int num;
scanf("%d", &num);
if (num >= 4 && isou(num))
{
for (int i = 2; i <= num / 2; i++) //查询次数可以减半
{
if (iszhi(i) && iszhi(num - i))
{
printf("%d,%d\n", i, num - i);
//break; //跳出当前所在循环
}
}
}
else
{
printf("输入的数不符合题目要求!!\n");
}
system("pause");
}
(B)
大于等于7的奇数都可以表示成三个质数之和
int isji(int number)
{
if (number % 2 == 1)
return 1;
else
return 0;
}
void main()
{
puts("请输入一个大于等于7的奇数");
int num;
scanf("%d", &num);
if (isji(num) && num >= 7)
{
for (int i = 2; i < num - 1; i++) //简单实现,没有考虑优化(大于2的偶数直接跳过等等)
{
for (int j = i + 1; j < num; j++)
{
if (iszhi(i) && iszhi(j) && iszhi(num - i - j))
{
printf("%d,%d,%d\n", i, j, num - i - j);
//break; //break 跳出当前循环
}
}
}
}
else
puts("输入的数字不符合题目要求!!!");
system("pause");
}
验证哥德巴赫猜想
最新推荐文章于 2024-04-17 16:15:18 发布