最大公约数和最小公倍数.c 602 B

12345678910111213141516171819202122232425262728293031323334
  1. #include <stdio.h>
  2. // 欧几里得算法计算最大公约数
  3. int gcd(int a, int b) {
  4. while (b != 0) {
  5. int temp = b;
  6. b = a % b;
  7. a = temp;
  8. }
  9. return a;
  10. }
  11. // 计算最小公倍数
  12. int lcm(int a, int b, int gcd_value) {
  13. return (a / gcd_value) * b;
  14. }
  15. int main() {
  16. int a, b;
  17. // 从标准输入读取两个整数
  18. scanf("%d %d", &a, &b);
  19. // 计算最大公约数
  20. int gcd_value = gcd(a, b);
  21. // 计算最小公倍数
  22. int lcm_value = lcm(a, b, gcd_value);
  23. // 输出结果
  24. printf("%d %d\n", gcd_value, lcm_value);
  25. return 0;
  26. }