用c++编写程序:输入两个正整数m和n,求其最大公约数
3个回答
展开全部
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;
}
展开全部
简单来说就是辗转相处,核心代码为
int temp;//临时变量
temp=a%b;
a=b;
b=temp;
当b等于0的时候a的值即为所求最大公约数
int temp;//临时变量
temp=a%b;
a=b;
b=temp;
当b等于0的时候a的值即为所求最大公约数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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”;
}
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”;
}
追问
你这个程序进行过验证么
追答
嗯
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询