当前位置: 代码迷 >> C语言 >> 求教
  详细解决方案

求教

热度:224   发布时间:2008-05-06 18:50:58.0
求教
写两个函数,分别求两个整数的最大公约数和最小公倍数.
搜索更多相关的解决方案: 整数  函数  最大公约数  最小公倍数  

----------------解决方案--------------------------------------------------------
gcd(a,b)用辗转反侧法求最大公约数
然后最小公倍数lcm(a,b)=(a*b/gcd(a,b))
----------------解决方案--------------------------------------------------------
#include<stdio.h>

void main()
{
    int a,b,m,n,max,min,t,p;
    scanf("%d%d",&a,&b);
    m=a;n=b;
    if(m>n)
    {  t=m;
       m=n;
       n=t;
       }
    while(m)
    {
        p=n%m;
        n=m;
        m=p;
    }
    max=n;
    min=a*b/max;
    printf("%d,%d",max,min);
}
----------------解决方案--------------------------------------------------------
欧拉是万能的!!卡卡卡卡……
----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{
    int a,b,x,y;
    scanf("%d%d",&a,&b);
    if(a>b)
        x=a;
    else
        x=b;
    for(x;x<=a*b;x++)
        if(x%a==0&&x%b==0)break;
    if(a>b)
        y=b;
    else
        y=a;
    for(y;y>1;y--)
        if(a%y==0&&b%y==0)break;
    printf("最小公倍数是%d\n最大公约数是%d",x,y);
}
----------------解决方案--------------------------------------------------------
2楼的精简一些
5楼的算法要改进哦!
----------------解决方案--------------------------------------------------------
  相关解决方案