1. 程式人生 > >7-26 最大公約數和最小公倍數 (15 分)

7-26 最大公約數和最小公倍數 (15 分)

本題要求兩個給定正整數的最大公約數和最小公倍數。

輸入格式:

輸入在一行中給出兩個正整數M和N(≤1000)。

輸出格式:

在一行中順序輸出M和N的最大公約數和最小公倍數,兩數字間以1空格分隔。

輸入樣例:

511 292

輸出樣例:

73 2044

鳴謝安陽師範學院段曉雲老師和軟體工程五班李富龍同學補充測試資料!

思路:輾轉相除法求出最大公約數 最小公倍數 = 兩數之積/最大公約數

PS:如果有同學不瞭解輾轉相除法 可以參考以下連結 https://baike.baidu.com/item/輾轉相除法/4625352

#include<stdio.h>
int main()
{
    int m,n;
    int d;
    scanf("%d%d",&m,&n);
    int a = m;
    int b = n;
    while(n!=0)
    {
        d = m % n;
        m = n;
        n = d;
    }
    int A = a / m;
    int B = b / m;
    int S = A*B*m;
    printf("%d %d\n",m,S);
return 0;
}