最大公约数

最大公约数:

求任意两个正整数的最大公约数(GCD)。

解题思路:

判断输入的两数大小,将小数储存在n中,利用for循环遍历1到n的所有约数的可能,判断是否为公约数,若是则存入k中。

代码:

#include<iostream>

using namespace std;

int main()

{

    int m,n,temp,i,k;

    cout<<"Input m & n:"<<endl;

    cin>>m>>n;

    if(m<n)

    {

        temp=m;

        m=n;

        n=temp;

    }

    for(i=1;i<n;i++)

    {

        if(m%i==0&&n%i==0)

            k=i;

    }

    cout<<"The GCD of "<<m<<" and "<<n<<" is: "<<k<<endl;

    return 0;

}

 

问题拓展:

解题思路:

欧几里得算法。

代码:

#include<iostream>

using namespace std;

int main()

{

    int m,n,temp,b;

    cout<<"Input m & n:"<<endl;

    cin>>m>>n;

    if(m<n)

    {

        temp=m;

        m=n;

        n=temp;

    }

    b=m%n;

    while(b!=0)

    {

        m=n;

        n=b;

        b=m%n;

    }

    cout<<"The GCD of "<<m<<" and "<<n<<" is: "<<n<<endl;

    return 0;

}

 

posted @ 2023-05-05 20:17  不如喝点  阅读(54)  评论(0编辑  收藏  举报