程序分析:
在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数。
求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N。
如果余数为0,则N即为所求;如果余数不为0,用N除,再求其余数。。。直到余数为0,则除数就是M和N的最大公约数
代码:
#include<stdio.h> int gcd(int a, int b)/*求最大公约数*/ { int r, t; if(a<b) { t = a; a = b; b = t; } r = a % b; while(r != 0)/*辗转相除法*/ { a = b; b = r; r = a % b; } return b; } int lcm(int a, int b)/*求最小公倍数*/ { int r; r = gcd(a, b); return(a * b / r); } int main() { int x, y; printf("请输入两个整数: "); scanf_s("%d %d", &x, &y); printf("两个整数最大公约数为:%d ", gcd(x, y)); printf("两个数最小公倍数为:%d ", lcm(x, y)); return 0; }