#include <stdio.h>
#include <math.h>
int prime(int p);
void Goldbach(int n);
int main()
{
int m, n, i, cnt;
scanf_s("%d %d", &m, &n);
if (prime(m) != 0) printf("%d is a prime number\n", m);
if (m < 6) m = 6;
if (m % 2) m++;
cnt = 0;
for (i = m; i <= n; i += 2) {
Goldbach(i);
cnt++;
if (cnt % 5) printf(", ");
else printf("\n");
}
return 0;
}
int prime(int p)
{
int i, k;
if (p == 1)
{
return 0;
}
k = (int)sqrt(p);
for (i = 2; i <= k; i++)
{
if (p % i == 0)
return 0;
}
return 1;
}
void Goldbach(int n)
{
int b;
for (int i = 2; i < n; i++)
{
if (prime(i) == 1)
{
b = prime(n - i);
if (b == 1)
{
printf("%d=%d+%d", n, i, n - i);
break;
}
}
}
}
原地址:
【哥德巴赫猜想(实验二) - CSDN App】http://t.csdnimg.cn/vDxJl