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


輸入格式:

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

輸出格式:

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

輸入樣例:

511 292

輸出樣例:

73 2044

提交:

#include <stdio.h>
//最大公約數:兩個數所有公有質因數的乘積
//最小公倍數:兩個數所有共有質因數和其各自獨有質因數的乘積
//即最大公約數 = 兩數之積/最小公倍數 如 4 =2*2,6=2*3   2=4*6 / 2*2*3
int main() {
    
    int m,n;
    scanf("%d %d",&m,&n);
    int yushu;
    yushu = m%n;
    int x;
    x = m*n;
    if (yushu == 0) printf("%d %d",n,x/n);
    else {
        while(yushu != 0){//輾轉相除法 
            m = n;
            n = yushu;
            yushu = m%n;
        }
        printf("%d %d",n,x/n);
    }
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM