习题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;
}

 

posted on 2020-03-28 00:45  Kimsohyun4ever  阅读(1866)  评论(0编辑  收藏  举报