辗转相除法求两个数的最大公约数:
设这两个数分别为a和b,a与b取模,如果不等于零,将b赋值给a,再将此时的余数再赋值给b,然后再a与b取模,直至取模后值为零。则最大公约数为此时的b。
程序的实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d %d", &a, &b);
while (a%b !=0)
{
c = a%b;
a = b;
b = c;
}
printf("%d\n", b);
system("pause");
return 0;
}
运行结果:
求两个数的最小公倍数
两个数相乘后,除以这两个数的最大公约数就等于这两个数的最小公倍数。
程序的实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a, b, c,d,e;
scanf("%d %d", &a, &b);
d = a*b;
while (a%b != 0)
{
c = a%b;
a = b;
b = c;
}
e = d / b;
printf("%d\n", e);
system("pause");
return 0;
}
运行结果: