当前位置:   article > 正文

c语言求最大公因数和最小公倍数

c语言求最大公因数和最小公倍数

一、用辗转相除法求最大公因数

辗转相除:
假如需要求 1997 和 615 两个正整数的最大公约数,进行过程如下:
1997 / 615 = 3 (余152)
615 / 152 = 4(余7)
152 / 7 = 21(余5)
7 / 5 = 1 (余2)
5 / 2 = 2 (余1)
2 / 1 = 2 (余0)
至此,最大公约数为1,以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数。

二、求最小公倍数

假设a,b两个数的最大公约数为m,则最小公倍数n=a*b/m

例如24和36,用辗转相除法得到最大公约数为12。再通过公式24*36/12得到最小公倍数为72。

三、c语言代码

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. //辗转相除法求两个数的最大公约数
  4. int MaxDevisor(int max,int min) {
  5. int temp;
  6. while (min != 0) {
  7. temp = min;
  8. min = max % min;
  9. max = temp;
  10. }
  11. return max;
  12. }
  13. //求最小公倍数
  14. int MinMultiple(int a, int b) {
  15. return a*b/MaxDevisor(a, b);
  16. }
  17. int main(void) {
  18. printf("%d",MinMultiple(24,36));
  19. return 0;
  20. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/799234
推荐阅读
相关标签
  

闽ICP备14008679号