学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

求教

求教

写两个函数,分别求两个整数的最大公约数和最小公倍数.

TOP

gcd(a,b)用辗转反侧法求最大公约数
然后最小公倍数lcm(a,b)=(a*b/gcd(a,b))
突然发现自己对C简直一无所知!永远都没有真正的高手ACMer的QQ群:33741351欢迎热爱编程,热爱ACM的人加入

TOP

#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);
}
蝴 蝶 颤 动 了 翅 膀 !!!

TOP

欧拉是万能的!!卡卡卡卡……
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

#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);
}

TOP

2楼的精简一些
5楼的算法要改进哦!
我秀我自己

TOP

发新话题