一. 什么是最大公约数和最小公倍数?
最大公约数:指能够整除多个整数的最大正整数。例如8和12的最大公约数为4。
最小公倍数:两个或多个整数最小的公共倍数。例如6和24的最小公倍数为24。
二者的关系
假设x和y的最大公约数是m,最小公倍数是n,则xy=mn。
二. 计算两个数的最大公约数和最小公倍数
最大公约数:(辗转相除法):令两个数为a和b(不论顺序)。若b不为0,更新a和b的值:把a/b的余数赋值给b,b原来的值赋给a。重复操作,直到b=0,此时a为二者最大公约数。
最小公倍数:利用二者的关系(最大公约数 * 最小公倍数=a * b),只需先求出最大公约数即可。
测试代码:
#include<stdio.h> int gcd(int a, int b)//求最大公约数函数 { int tmp = 0; while (b) { tmp = a % b a = b; b = tmp; } return b; } int main() { int num1 = 4; int num2 = 25; printf("最大公约数为:%d,最小公倍数为%d\n", gcd(num1, num2) , num1*num2/ gcd(num1, num2)); return 0; }
运行结果