问题标题: 1029: 【入门】求两个自然数M和N的最大公约数,时间超限20分!

0
0
已解决
高梓荣
高梓荣
新手天翼
新手天翼

1029: 【入门】求两个自然数M和N的最大公约数

时间限制 : 1 Sec  内存限制 : 16 Mb  提交 : 18720  解决 : 8890

题目描述:求两个自然数M和N的最大公约数(M,N都在长整型范围内)

输入:输入一行,包括两个整数.

输出:输出只有一行(这意味着末尾有一个回车符号),包括1个整数。

样例输入:45 60

样例输出:15

 

俺的代码:

#include<iostream>
using namespace std;
int main()
{
    long long m,n;
    cin>>m>>n;
    if(m>n)
    {
        for(long long i=n;i>=1;i--)
            if(m%i==0&&n%i==0)
            {
                cout<<i;
                return 0;
            }
    }else if(m<n)
    {
        for(long long i=m;i>=1;i--)
            if(m%i==0&&n%i==0)
            {
                cout<<i;
                return 0;
            }
    }
}

拿错了

高梓荣在2018-08-13 19:47:37追加了内容

不是酷町堂的题,不要再问了


1
已采纳
贾文卓
贾文卓
高级光能
高级光能

辗转相除法,可以利用递归思想解决。

递归代码:

int gys(int x, int y) {
    if(y == 0) return x;
    return gys(y, x % y);
}

 

0
0
0
袁翊凡
袁翊凡
新手光能
新手光能

你这题号发错了吧,1029是   鸡尾酒疗法疗效谁更佳

0
何羽凡
何羽凡
修练者
修练者

题号发错了,1029是鸡尾酒疗法疗效谁更佳。

0
张舒斌
张舒斌
中级光能
中级光能

oj上的题吗,我知道。

定义一个函数来找最大公约数和最小公倍数,最大公约用短处,最小公倍=两数之积除以最大公约,然后在主函数里写点东西就行了,我已经说的很清楚了

0
栾峻岩
栾峻岩
初级天翼
初级天翼

辗转相除法(递归)。

我要回答