上海鸿亿集团有限公司:帮小弟一个忙好吗!十万火急啊,那位大哥哥大姐姐可以帮帮我啊 ,小弟感激不尽!:)

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 19:19:22
最好21号前可以完成!:)用C++将大于6小于100的偶数分解成两个素数之和,以两个素数之和的形式输出,例如 6=3+3要求每行输出5个数;编写程序时要求用到函数调用,即分解成两个素数之和的部分用一个函数来实现,然后在主函数中调用
输出的时候可不可以输出所有的可能 就是10=3+7 10=5+5等一个偶数的全部素数组合!

#include <iostream>
using namespace std;
int sushu(int a)
{
int c,i;
for (i=2;i<=a;i++)
if(a%i==0) break;
if(i>=a)
c=1;
else
c=0;
return(c);
}

int ss(int n)
{
int i,m=0;
for(i=2;i<(n+2)/2;i++)
{
if((sushu(i)==1)&&(sushu(n-i)==1))
m=i;
}
return(m);
}
int main(int argc, char *argv[])
{
int i,m,n=0;
for(i=6;i<=100;i++,i++)
{
m=ss(i);
if (m!=0)
{
n++;
cout<<i<<"="<<m<<"+"<<i-m<<" \t";
if (n%5==0) cout<<"\n";
}
}
return 0;
}

#include "stdafx.h"
#include <iostream>
using namespace std;

int MaxPrime(int);
int IsPrime(int);
void _tmain(int argc, _TCHAR* argv[])
{
int i,num;
i=0;num=8;
while(num<100)
{
cout<<num<<"="<<MaxPrime(num)<<"+"<<num-MaxPrime(num)<<" ";
i++;
num+=2;
if(i%5==0)cout<<endl;
}
cout<<endl;
}

int IsPrime(int n) //判断整数n是否为素数;
{
for(int i=2;i<n/2;i++)
{
if(n%i==0)
{
return 0;
break;
}
}
return 1;
}
int MaxPrime(int num) //返回比num小(但其差也为素数)的最大素数;
{
int max=num-3;
while(!(IsPrime(max)&&IsPrime(num-max)))
{
max-=2;
}
return max;
}

PS:刚在VS2005下编的,只是我这把判断是否为素数也用了函数调用,稍微改一下,就符合你的要求了。

不好意思没有学过c++