又一道C++问题??

来源:百度知道 编辑:UC知道 时间:2024/06/10 15:55:02
哥德巴赫问题,编制主程序输入偶数 20000 ,计算可为多少对两个素数之和并输出素数对,调用子程序prime()判定素数。

#include <iostream.h>
#include <math.h>

bool prime(int i)
{
long j, tmp = sqrt(i)+1;
for(j=2;j<=tmp;j++)
{
if (i%j==0)
{
return false;
}
}
return true;
}

void main ()
{
long n=20000;
long i;
for (i=0; i<10000; i++)
if(prime(i) && prime(20000-i))
cout<<i<<" + "<<20000-i<<"= 20000"<<endl;
}

239个吧,计算程序如下:
#include <iostream.h>
#include <math.h>

bool prime(int x1);

void main()
{
int i, count = 0;
for (i = 2; i < 10000; i++)
{
if (prime(i) && prime(20000 - i))
{
cout << ++count << '\t' << i << '\t' << 20000 - i << endl;
}
}
}

bool prime(int x1)
{
int k = (int)sqrt(x1);

for (in