用c++编写程序:输入两个正整数m和n,求其最大公约数

 我来答
她是我的小太阳
高粉答主

2015-10-27 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:9086万
展开全部

c++也可以使用scanf和printf来输入输出,并且比较不易出错,最大公约数使用欧几里德辗转相除法伪代码如下:

#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
 int m,n,m_cup,n_cup,res;
 cin>>m>>n;
 if(m > 0 && n > 0)
 { m_cup=m;
   n_cup=n;
   res=m_cup%n_cup;
   while(res!=0)
     { 
       m_cup=n_cup;
       n_cup=res;
       res=m_cup%n_cup;
     }
    cout<<n_cup<<' '<<m*n/n_cup;
   }
 else  
      cout<<"Error!"<<endl;
 system("pause");
 return 0;
}
lab961022
2013-01-06 · TA获得超过150个赞
知道答主
回答量:47
采纳率:0%
帮助的人:49.6万
展开全部
简单来说就是辗转相处,核心代码为
int temp;//临时变量
temp=a%b;
a=b;
b=temp;
当b等于0的时候a的值即为所求最大公约数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黄盛shine
2013-01-06
知道答主
回答量:31
采纳率:0%
帮助的人:11.7万
展开全部
#include<iostream>
main()
{int m,n,t,p=1;
cout<<“Please input two positive integers:\n”;
cin>>m>>n;
if(m<n){t=m;m=n;n=t;}
while(p!=0)
{ p=m%n;
m=n;
n=p;
}
if (m==1)cout<<m<<“No GYS\n”; else cout<<m<<“Is GYS \n”;
}
追问
你这个程序进行过验证么
追答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式