怎么用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结果还