设计一个过程(函数或子程序):求两个正整数的最小公倍数。在主调函数过程中调用这个过程并完成下列任务

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:17:55
设计一个过程(函数或子程序):求两个正整数的最小公倍数。在主调函数过程中调用这个过程并完成下列任务:
(1)求440和1005的最小公倍数s;
(2)求4080和288的最小公倍数t;
(3)求s与t中的最大数p;
(4)求出p与4592的最小公倍数。

看我以前的,顺便补充一下
最大公约数与最小公倍数的乘积等于这2个数的乘积
证明:设A=a*……*b*c*……*h(a、b、c……h互质)
B=a*……*b*i*j*k*l*……*z(i、j、k……z互质)
公约数是a*……*b
公倍数是a*……*b*c*……*h*i*j*k*l*……*z
故相乘为A*B

C实现代码
#include "stdio.h"
int gcd(int m,int n)
{int r,s,p,g;
p=m*n;
if(m>n) {t=n;m=n;m=t;}
while(m!=0)
{ r=n%m;
n=m;
m=r; //递归gcd(n,m)=gcd(m,n%m)
}
s=n; //最大公约数
g=p/n; //最小公倍数
return (g);
}
void main()
{int s,t,p,q;
s=gcd(440,1005);
t=gcd(4080,288);
p=(s>t)?s:t;
q=gcd(p,4592);
printf("440和1005的最小公倍数s=%d\n4080和288的最小公倍数t=%d\ns与t中的最大数p=%d\np与4592最小公倍数=%d",s,t,p,q);
}
辗转相除法原理
http://blog.sina.com.cn/s/blog_53ed49360100052c.html

5