注册 登录
编程论坛 C++教室

请教最大公约数问题

baby俊 发布于 2011-04-02 22:56, 401 次点击
请教最大公约数问题
#include<iostream>
using namespace std;
int main()
{
    int m,n,t,r,p;
    cout<<"请输入两个整数:";
    cin>>m>>n;
    if(m<n)
    {
        t=m;m=n;n=r;
    }
    r=m%n;
    p=m*n;
    while(r)
    {m=n;n=r;r=m%n;}
    cout<<"两个数的最大公约数是"<<n<<endl;
    cout<<"两个数的最小公倍数是"<<p/n<<endl;
    return 0;
}
请教为什么这个程序输入12,16得到的结果却是-4,214748368
望高人指教,谢谢
1 回复
#2
草狼2011-04-03 21:58
#include<iostream>
using namespace std;
int main()
{
    int m,n,t,r,p;
    cout<<"请输入两个整数:";
    cin>>m>>n;
    if(m<n)
    {
        t=m;m=n;n=r //r改成t;
    }
    r=m%n;
    p=m*n;
    while(r)
    {m=n;n=r;r=m%n;}
    cout<<"两个数的最大公约数是"<<n<<endl;
    cout<<"两个数的最小公倍数是"<<p/n<<endl;
    return 0;
}
#include<iostream>
using namespace std;
int main()
{
    int m,n,t,r,p;
    cout<<"请输入两个整数:";
    cin>>m>>n;
    if(m<n)
    {
        t=m;m=n;n=r//r改成t;
    }
    r=m%n;
    p=m*n;
    while(r)
    {m=n;n=r;r=m%n;}
    cout<<"两个数的最大公约数是"<<n<<endl;
    cout<<"两个数的最小公倍数是"<<p/n<<endl;
    return 0;
}
1