用C语言验证哥德巴赫猜想

#include<stdio.h>#include<math.h>main(){intn,x,y,a,b,i,j;for(n=90;n<=100;n+=2){for(x=... #include<stdio.h>
#include<math.h>

main()
{
int n,x,y,a,b,i,j;

for(n=90;n<=100;n+=2)
{
for(x=3;x<n/2;x+=2)
{
a=sqrt(x);
for(i=2;i<a;i++)
if(x%i==0) break;
if(i>=a+1)
{y=n-x;
b=sqrt(y);
for(j=2;j<b;j++)
if(y%j==0) break;
if(j>=b+1)
printf("%d=%d+%d\n",n,x,y);}

}
}
大学里接触编程有几节课 请帮忙指出错误 谢谢!
展开
 我来答
山水阿锐
2015-03-29 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
您好,#include "stdio.h"
#include "math.h"//是否是素数
int IsPrime(int n)
{
int i;
for (i=2;i<n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}void Output(int n)
{
int i;
for(i = 2; i<=n/2;++i)
{
if(IsPrime(i) && IsPrime(n-i))
{
printf("%d=%d+%d\n",n,i,n-i);
break;
}
}
}
void main()
{
Output(107000);
printf("\n");
} IsPrime(int n)和Output(int n) 都是自定义函数,是写的人根据函数内容自己编写的。他们最后都可以在主函数中调用,其中if(IsPrime(i) && IsPrime(n-i))和Output(107000) 都是他们的调用。if(IsPrime(i) && IsPrime(n-i))的意思是:如果这个数i以及(n-i)都为素数,那么执行下面操作。(当IsPrime(i)为1时是素数,为0时为合数)Output(107000) 的结果为:printf("%d=%d+%d\n",n,i,n-i);即:输出107000这个数符合哥德巴赫猜想,他是哪两个质数的和。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式