问题:打印4-100内的哥德巴赫猜想数
哥德巴赫猜想:任何一个大于2的偶数都能写成两个素数之和
问题的关键在于寻找两个素数
代码如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace gedebahe
{
class Program
{
public static void Main()
{
//范围是4-100
int begin = 4, end = 100;
int n;
//调用函数
Program p = new Program();
for (n = begin; n <= end; n += 2)
{
int i;
for (i = 2; i <= n / 2; i++)
//判断是否为素数
if (p.isPrime(i) && p.isPrime(n - i))
{
//打印
Console.Write("{0}={1}+{2} \n", n, i, n - i);
//跳出循环
break;
}
}
Console.ReadLine();
}
//判断是否为素数
public bool isPrime(int n)
{
int i;
if (n < 2)
return false;
if (n == 2)
return true;
else
for (i = 2; i * i <= n; i++)
if (n % i == 0)
return false;
return true;
}
}
}
4 = 2 + 2
6 = 3 + 3
8 = 3 + 5
10 = 3 + 7
12 = 5 + 7
14 = 3 + 11
16 = 3 + 13
18 = 5 + 13
20 = 3 + 17
22 = 3 + 19
24 = 5 + 19
26 = 3 + 23
28 = 5 + 23
30 = 7 + 23
32 = 3 + 29
34 = 3 + 31
36 = 5 + 31
38 = 7 + 31
40 = 3 + 37
42 = 5 + 37
44 = 3 + 41
46 = 3 + 43
48 = 5 + 43
50 = 3 + 47
52 = 5 + 47
54 = 7 + 47
56 = 3 + 53
58 = 5 + 53
60 = 7 + 53
62 = 3 + 59
64 = 3 + 61
66 = 5 + 61
68 = 7 + 61
70 = 3 + 67
72 = 5 + 67
74 = 3 + 71
76 = 3 + 73
78 = 5 + 73
80 = 7 + 73
82 = 3 + 79
84 = 5 + 79
86 = 3 + 83
88 = 5 + 83
90 = 7 + 83
92 = 3 + 89
94 = 5 + 89
96 = 7 + 89
98 = 19 + 79
100 = 3 + 97
上面的代码速度略慢,在素数求解的时候效率不够高,由于本题只是演示求解100以内的,没有做算法优化,各位有更好的算法欢迎留言交流!