写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果.

如题所述

#include<stdio.h>
int main()
{
int a,b,imax,imin,tend;
int max(int,int);
printf("please insert two numbers:");
scanf("%d %d",&a,&b);
if(a<b)
{
tend=a;
a=b;
b=tend;
}
imax=max(a,b);
imin=a*b/imax;
printf("最大公约数是%d\n",imax);
printf("最小公倍数是%d\n",imin);
}
int max(int x,int y)
{
int z;
while(x%y!=0)
{
z=x%y;
x=y;
y=z;
}
return(y);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-28
=GCD(A1,A2) 最大公约数
=LCM(A1,A2) 最小公倍数
第2个回答  2008-11-28
GCD
返回两个或多个整数的最大公约数,最大公约数是能分别将 Number1 和 Number2 除尽的最大整数。

语法

GCD(number1,number2, ...)

Number1, number2, ... 为 1 到 255 个数值,如果数值为非整数,则截尾取整。

说明

如果参数为非数值型,则函数 GCD 返回错误值 #VALUE!。
如果参数小于零,则函数 GCD 返回错误值 #NUM!。
任何数都能被 1 整除。
素数只能被其本身和 1 整除。

LCM
返回整数的最小公倍数。最小公倍数是所有整数参数 number1、number2 等等的最小正整数倍数。用函数 LCM 可以将分母不同的分数相加。

语法

LCM(number1,number2, ...)

Number1, number2,... 是要计算最小公倍数的 1 到 255 个参数。如果参数不是整数,则截尾取整。

说明

如果参数为非数值型,函数 LCM 返回错误值 #VALUE!。
如果有任何参数小于 0,函数 LCM 返回错误值 #NUM!。
第3个回答  2008-11-28
#include<stdio.h>
int kk(int x,int y)
{int i;
for(i=x;i>=1;i--)
{ if(x%i= =0&&y%i= =0)
break; }
}
int pp(int x,int y)
{int i;
for(i=y;i<=x*y;i++)
{ if(i%x= =0&&i%y= =0)
break; }

void main( )
{ int m,n,kk,pp,temp;
scanf("%d,%d",&m,&n);
if(m>n)
{temp=m;m=n;n=temp;}
kk=max(m,n);
pp=min(m,n);
printf("max=%d\n",kk);
printf("min=%d\n",pp);

}
相似回答