哥德巴赫猜想是世界三大数学猜想之一。世界三大数学猜想分别是费马猜想、四色猜想和哥德巴赫猜想。费马猜想和四色猜想的证明已经完成,只有哥德巴赫猜想尚未被完全证明。哥德巴赫猜想的描述如下 任何一个大于2的偶数都可以表示成两个质数的和。例如,4=2+2,10=3+7。尝试编写程序进行验证。
Python实现
01 def isPrime(n):
02 if n <= 1: # 如果n的值小于等于1
03 return False # 返回False表示不是质数
04 if n == 2: # 如果n的值等于2
05 return True # 返回True表示是质数
06 for i in range(2,n):
07 if n % i == 0: # 如果n能被i整除
08 return False # 返回False表示不是质数
09 return True # 返回True表示是质数
10 while True:
11 try:
12 num = int(input("请输入一个大于2的偶数 ")) # 输入大于2的偶数
13 if num > 2 and num % 2 == 0: # 如果num是大于2的偶数
14 break # 跳出循环
15 else:
16 print("您输入的不是大于2的偶数!") # 输出提示信息
17 except:
18 print("输入错误,请重新输入!") # 提示输入错误
19 for i in range(4,num + 1,2): # 遍历4 num之间的偶数
20 for j in range(2,i): # 遍历2 i之间的整数
21 if isPrime(j) and isPrime(i j): # 判断j和i-j是否是质数
22 print("{}={}+{}".format(i,j,i-j)) # 输出表示的两个质数的和
23 break # 跳出循环
C语言实现
#include <stdio.h>
int ss(int i)
{
int j;
if (i <= 1) /如果小于等于1返回0
return 0;
if (i == 2) /如果等于2返回1
return 1;
for (j = 2; j < i; j++)
{
if (i % j == 0) /循环判断是否为素数
return 0;
else if (i != j + 1)
continue;
else
return 1;
}
}
int main()
{
int i, j, k, flag1, flag2, n = 0;
for (i = 6; i < 100; i += 2)
{
for (k = 2; k <= i 2; k++)
{
j = i k;
flag1 = ss(k); /调用ss函数判断当前数是否为素数
if (flag1)
{
flag2 = ss(j); /调用ss函数判断另一个数是否为素数
if (flag2) /如果都是素数
{
printf("%3d=%3d+%3d,", i, k, j); /输出结果
n++;
if (n % 5 == 0) /每5个数自动换一行
printf("\n");
}
}
}
}
return 0;
}
你还能用其他语言证明吗?留言区给出答案!
Powered by 小羊羔外链网 8.3.10
©2015 - 2024 小羊羔外链网
您的IP:3.143.229.82,2024-04-18 03:21:02,Processed in 0.05219 second(s).