最大公约数都小于或等于两个数中较小数的一半,因此可建立循环,从两个数中较小数的一半开始,递减循环。只要有一个数同时与两个数的被余数为0,则跳出循环,此数就是最大公约数。
从两个数较小数开始倍增循环,只要有一个数与较大数的余数为0,则跳出循环,此数就是最小公倍数。
第一步设变量:任意两个整数为X和Y,最大公约数为M,最小公倍数为N,循环变量为I。
第二步编程:任意输入两个整数为X和Y,并调整X始终小于或等于Y;I=X开始递减循环,只要有一个数同时与两个数的被余数为0,则跳出循环,此数就是最大公约数;I=1开始倍增循环,若I*X%Y=0,则跳出循环,I*X就是最小公倍数。
第三步编译改错。
第四步运行。
程序源代码(TURBO C)
# include <stdio.h>
int main()
{int i,x,y,m,n;
printf("input to number:n");
scanf("%d,%d",&x,&y);
if (x>y) {i=x;x=y;y=i;}
for (i=x;i>=1;i--)
if (x%i==0&&y%i==0) {m=i;break;}
for (i=1;i<=x;i++)
if ((i*x)%y==0) {n=i*x;break;}
printf("nmax number: %dn min number: %dn",m,n);
return 0;}
运行结果: