【C语言】最大公约数和最小公倍数

xiaoxiao2021-02-28  120

/* * 输入两个整数 , 求其最大公约数和最小公倍数 * 最大公约数就是能同时整除这两个数的数,辗转相除法 * 两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。 * */ #include <stdio.h> //计算最大公倍数, int gcd(int num1, int num2) { int tem = 0, r = 0; if(num1 < num2) { tem = num1; num1 = num2; num2 = tem; } r = num1 % num2;//先做一次判断,初始化 while(r) { num1 = num2; num2 = r; r = num1 % num2; } return num2; } //计算最小公约数 int lcm(int num1, int num2, int gcd_num) { int product = 0, lcm_num = 0; product = num1 * num2; lcm_num = product / gcd_num; return lcm_num; } int main() { int num1 = 0, num2 = 0; int gcd_num = 0, lcm_num = 0; printf("请输入两个整数:\n"); scanf("%d%d",&num1,&num2); gcd_num = gcd(num1, num2); lcm_num = lcm(num1, num2, gcd_num); printf("最大公约数是:%d 最小公倍数是:%d\n", gcd_num, lcm_num); return 0; }
转载请注明原文地址: https://www.6miu.com/read-40326.html

最新回复(0)