编写函数求两个正整数的最大公约数和最小公倍数。

如题所述

帮你现写的:

#include <stdio.h>

int hct(int m,int n);
int Icd(int m,int n,int h);
int main()
{
     int a=8,b=6;
     int c[2];
     c[0]=hct(a,b);
     c[1]=Icd(a,b,c[0]);
     printf("最大公约数为:%d\n",c[0]);
     printf("最小公倍数为:%d\n",c[1]);
     return 0;
}
 
int hct(int m,int n)
{
     int s=1;
     for(int i=1;i<=m && i<=n;i++)
     {
          if(m%i==0 && n%i==0)
           s=i;
     }
     return s;
}
 
int Icd(int m,int n,int h)
{
     return m*n/h;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-03
#include<stdio.h>
int gcd(int n, int m)
{
if (m==0)
return n;
else
return gcd( m, n % m );
}
int bei( int m,int n )
{
return m * n/ gcd( m, n) ;
}
void main()
{
int a,b;
printf("输入两个数\n");
scanf("%d%d",&a,&b);

int c=gcd(a,b);
int d=bei(a,b);
printf("最大公约数为:%d\t\n最小公倍数为:%d\n",c,d);

}
第2个回答  2017-07-24
#includeusingnamespacestd;intgcd(inta,intb);intmul(inta,intb);voidmain(){inta,b,c,d;cout>a>>b;c=gcd(a,b);d=mul(a,b);cout=b)j=a;elsej=b;for(i=j;i>=1;i--){if(a%i==0&&b%i==0){k=i;break;}}returnk;}intmul(inta,intb){into,p,q;if(a>=b)p=b;elsep=a;for(o=p;o>=1;o--){if(a%o==0&&b%o==0){q=o;break;}}return(a*b)/q;}
相似回答