C语言编写 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数用另一个函数根据求出的最大

C语言编写 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数用另一个函数根据求出的最大公约数求最小公倍数。分别用下面的两种方法编程。 (1)不用全局变量,在主函数中输入两个数和输出结果。 (2)用全部变量的方法,数据的传递通过全部变量的方法。

#include <stdio.h>
int Convention(int n,int m)
{
int r;
if(n<1||m<1)
return 0; //不存在最小公约数,返回值小于1皆可
while(n%m)
{
r=n%m;
n=m;
m=r;
}
return m;
}
int Multiple(int n,int m)
{
int c=Convention(n,m);
if(c>0)
return n*m/c;
return 0; //同公约数不存在最小公倍数
}
void main()
{
int n,m;
printf("请输入两个整数(大于0):\n");
scanf("%d %d",&n,&m);
while(getchar()!='\n');
if(Convention(n,m)>0)
{
printf("%d和%d的最小公约数是:%d\n",n,m,Convention(n,m));
printf("%d和%d的最小公倍数是:%d\n",n,m,Multiple(n,m));
}
}

#include <stdio.h>
int con,mul; //最小公约数、公倍数
void Convention(int n,int m)
{
int r;
if(n<1||m<1)
{
con=0; //不存在最小公约数,返回值小于1皆可
return;
}
while(n%m)
{
r=n%m;
n=m;
m=r;
}
con=m;
}
void Multiple(int n,int m)
{
if(con>0)
mul=n*m/con;
else
mul=0; //同公约数不存在最小公倍数
}
void main()
{
int n,m;
printf("请输入两个整数(大于0):\n");
scanf("%d %d",&n,&m);
while(getchar()!='\n');
Convention(n,m);
Multiple(n,m);
if(con>0)
{
printf("%d和%d的最小公约数是:%d\n",n,m,con);
printf("%d和%d的最小公倍数是:%d\n",n,m,mul);
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答