分享

【C/C++】求最大公约数的三种方法

 醉饮千殇v 2019-04-12

一、最大公约数与最小公倍数

最大公约数,属于数论所探究的内容。

最大公约数可以通过下面的三种方法求出来。

最小公倍数呢,它与最大公约数的乘机为所求数之积。

比如求  x,y的最大公约数和最小公倍数

记住这个公式: x*y=最小公倍数*最大公约数

二、求最大公约数的三种方法

①辗转相除法

算法流程图

  1. int measure(int x, int y)
  2. {
  3. int z = y;
  4. while(x%y!=0)
  5. {
  6. z = x%y;
  7. x = y;
  8. y = z;
  9. }
  10. return z;
  11. }

运行结果:

②辗转相减法

  1. int measure(int a,int b)
  2. {
  3. while(a != b)
  4. {
  5. if(a>b)
  6. {
  7. a = a - b;
  8. }
  9. else
  10. {
  11. b = b - a;
  12. }
  13. }
  14. return a;
  15. }

运行结果:

③穷举法

流程图

  1. int measure(int x,int y)
  2. {
  3. int temp = 0;
  4. for(temp = x ; ; temp-- )
  5. {
  6. if(x%temp == 0 && y%temp==0)
  7. break;
  8. }
  9. return temp;
  10. }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多