题目要求:歌德巴赫猜想。每个不小于6的偶数都可以表示为两个奇素数之和;例如:5=2+3 , 8=3+5 ,验证100以内的自然数。
#include<stdio.h>
void main() {
int a, b, i, j, m;
int n = 0;
for (m = 6; m <= 100; m++) //m是大于等于6的自然数
{
for (a = 2; a <= m / 2; a++) {
b = m - a;
for (i = 2; i <= a; i++) //求解第一个奇素数
if (a % i == 0) //如果能够整除,则其不是素数
break;
for (j = 2; j <= b; j++) //求解第二个奇素数
if (b % j == 0)
break;
if (i == a && j == b) //当a、b都是素数的时候,并且前面已经确定了m=a+b
{
printf("%2d=%2d+%2d ", m, a, b);
if (++n % 6 == 0) //每输出6次换行,删除此代码,系统自动换行
printf("\n");
break;
}
}
}
}
本章C语言经典例题合集:http://t.csdnimg.cn/FK0Qg