習題4-7 最大公約數和最小公倍數 (15分)


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

輸入格式:

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

輸出格式:

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

輸入樣例:

511 292
 

輸出樣例:

73 2044

#include<stdio.h>
int f1(int m,int n);
int f2(int m,int n);
int main(void)
{
    int M,N;
    
    scanf("%d%d",&M,&N);
    printf("%d %d",f1(M,N),f2(M,N));
    
    return 0;
} 
/*最大公約數;m除以這個數余0,n除以這個數也為0,且是公因子中最大的*/
int f1(int m,int n){
    int i,min;
    
    min = m > n ? n:m;
    for(i=min;i>0;i--)
        if(n%i==0&&m%i==0)
            return i; 
} 

/*最小公倍數;這個數既是m的倍數,也是n的倍數,且是倍數中最小的*/
int f2(int m, int n){
    int i,max,min,ret;
    
    max=m>n?m:n;
    min=m>n?n:m;
    for(i=1; ;i++)
        if(min*i%max==0)
            return min*i;
}

 


免責聲明!

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



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