求两整数的最公约数和最小公倍数,c语言

来源:百度知道 编辑:UC知道 时间:2024/07/09 00:11:39
1.求两整数的最公约数和最小公倍数。用一函数求最大公约数,用另一函数调用此函数求出最大公约数,并用求出的最大公约数求最小公倍数。
具体要求如下:
①用全局变量。将最大公约数与最小公倍数设为全局变量,在主函数中输出它们的值。
②不用全局变量。最大公约数和最小公倍数由被调模块返回值。

#include <stdio.h>

int gcd(int n1,int n2)
{/*最大公约数*/
int a,b,temp;

if(n1>n2) /*找出两个数中的较大值*/
{
temp=n1; n1=n2; n2=temp; /*交换两个整数*/
}
a=n1; b=n2;
while(b!=0) /*采用辗转相除法求最大公约数*/
{
temp=a%b;
a=b;
b=temp;
}
return a;
}

int lcm(int n1,int n2)
{/*最小公倍数*/
return n1*n2/gcd(n1,n2);
}

int main()
{
int n1,n2;

printf("请输入两个整数:");
scanf("%d%d",&n1,&n2);

printf("%d和%d的最大公约数是: %d\n",n1,n2,gcd(n1,n2));
printf("%d和%d的最小公倍是: %d\n",n1,n2,lcm(n1,n2));
}

做的漂亮,楼上高手!