怎么用C语言编程任何一个大于6的偶数都可以写成两个质数的和

来源:百度知道 编辑:UC知道 时间:2024/05/18 08:33:39
怎么用C语言编程任何一个大于6的偶数都可以写成两个质数的和
各位谢谢了
我将感激不尽啊

很简单的,下面的MAX我定义为10000以内,如果你觉的大,可以任意改动(别小于6了呵呵)

#define MAX 10000
#include "stdio.h"
#include "math.h"

int f(int m);
void main()
{int i,m,k=0;
for(m=6;m<=MAX ;m=m+2)
for(i=3;i<=m/2;i=i+2)
if(f(i)&&(f(m-i)) /*判断构成和的2个数是否都是素数*/
{printf("%d=%d+%d ",m,i,m-i);
k++;
if(k%5==0) printf("\n");
}
}

/*判断素数*/
int f(int m)
{int i,c;
c=sqrt(m);
for(i=2;i<=c;i++)
if(m%i==0)break;
if(i==c+1) return 1; /*找不到能除的数,是素数返回1*/
else return 0;
}

上面的解法没问题,但是题审错了

应该是如:

unsigned int c;
scanf("d%",&c);
isEven(c);//判断是否为偶 and >6

int a,b;
a+b=c?
a and b is 素数?
求a and b.

//回答楼的:
你考虑多了,如果那样,那么重点就偏移了.
如输入:34234234234234234234234234234,这个数(任意的)可以写成3*10N次方+4*10(N-1)次方...+4*1结果还