C++ 验证哥德巴赫猜想

程序填空,不要改变与输入输出有关的语句。验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,…,18=7+11。输入两个正整数m和n... 程序填空,不要改变与输入输出有关的语句。
验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,…,18=7+11。
输入两个正整数 m 和 n(6<=m, n<=100),将 m 到 n 之间的偶数表示成两个素数之和,打印时一行打印5组。
输出使用语句:printf("%d=%d+%d ", number, i, number - i);
展开
 我来答
半季流年
2010-10-20 · TA获得超过1533个赞
知道小有建树答主
回答量:616
采纳率:0%
帮助的人:770万
展开全部
#include<stdio.h>
#include<math.h>
//判断一个数是否是素数
bool isPrime(int n)
{
int i;
for(i=2;i<=sqrt(n);++i){
if(n%i==0) return false;
}
if(i>sqrt(n)) return true;
}
//判断这个数是否符合哥德巴赫猜想
bool isNum(int num)
{
int i;
static int count=0;//定义一个静态变量count记录打印的次数,此时count相当于全局变量
for(i=1;i<=num/2;++i){
if(isPrime(i)){//先判断i是否为素数,若是则执行
if(isPrime(num-i)){//判断num-1是否为素数,若是则输出,否则继续循环
printf("%d=%d+%d\t",num,i,num-i);
++count;
if(count%5==0) printf("\n");//如果count=5就回车
return true;
}//inner if
}//out if
}//for
return false;//如果i>num/2,则返回假
}
void main()
{
int i,m,n;
printf("Input m(m>=6) and n(n<=100):");
scanf("%d%d",&m,&n);
for(i=m;i<=n;++i){
//判断该数是否是偶数
if(i%2==0) isNum(i);
}
}
刚写好的!运行了几次输出都符合要求!你自己试试

这下满意了吧!加点分哦!
矽桢
2010-10-19
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
2010年的信息学奥赛题目就有
是完善程序的
我是学pascal的
不知道和c++有没有差别...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
297095637
2010-10-19 · TA获得超过506个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:340万
展开全部
你是一点都不会还是遇到bug不会调试?

我是学计算机的,你加我的QQ,账号就是
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式