最大公约数:枚举法,辗转相除法;最小公倍数:两数乘积除以最大公约数即可。
#include<stdio.h>
#include<math.h>
int fun_gy(int,int); //声明最大公约数函数
int fun_gb(int,int); //声明最小公倍数函数
main()
{
int a,b,gy,gb;
printf("输入两个整数:\n");
scanf("%d%d",&a,&b);
gy=fun_gy(a,b); //调用最大公约数函数
gb=fun_gb(a,b); //调用最小公倍数函数
printf("最大公约数是:%d\n最小公倍数是:%d\n",gy,gb);
if(x%i==0&&y%i==0)
break;
两个整数的最大公约数
* 两数各分解质因数,然后取出同样有的质因数乘起来
*辗转相除法(扩展版)
和最小公倍数(lcm)的关系:
gcd(a, b) * lcm(a, b) = ab
a与b有最大公约数,
两个整数的最大公因子可用于计算两数的最小公倍数,或分数化简成最简分数。
两个整数的最大公因子和最小公倍数中存在分配律:
* gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c))
* lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c))
在坐标里,将点(0, 0)和(a, b)连起来,通过整数坐标的点的数目(除了(0, 0)一点之外)就是gcd(a, b)。
以上内容参考:百度百科-最大公约数
最小公倍数:两数乘积除以最大公约数即可。