zoukankan      html  css  js  c++  java
  • 求两个正数的最大公约数和最小公倍数

    一、求两个数(A和B)的最大公约数:

    1.算法思路: 辗转法

      ①A作为被除数,B作为除数,C=A%B

      ②如果C==0,B为最大公约数

      ③否则,继续取模运算,A=B,B=C,C=A%B,同上

    2.例子:

      int CountMaxComYueShu(int A,int B)
    {
      if((0==A)||(0==B))
      {
       return 0;
      } 
     
      int C=A%B;
      while(C!=0)
      {
        A=B;
        B=C;
        C=A%B;
      }
      return B;
    }

    二、求两个数(A和B)的最小公倍数

    1.算法思路:

      方法(1).利用最大公约数C求最小公倍数D=A*B/C

      方法(2).循环查找法,递增较大数的倍数,找到能同时整除两个数的倍数为止

    2.例子:循环查找法:

    int MinCommondTime(int m,int n)//求最小公倍数
    {
      if(0==m)
        return n;
      else if(0==n)
        return m;
      int max=m*n;
      int k=m;
      if(n>m)
       k=n;
      int j=k;
      for(int i=0;j<=max;j=k*i)
      {
         if((j%m==0)&&(j%n==0))
         return j;
         i++;
      }
      return -1;

        

  • 相关阅读:
    第几天?
    农历02__资料
    农历01
    VC6_预编译头
    QWebEngine_C++_交互
    Qt570_CentOS64x64_02
    Qt570_CentOS64x64_01
    QWebEngineView_CssVariables
    Windows__书
    Win7SDK
  • 原文地址:https://www.cnblogs.com/JYsharp/p/3405276.html
Copyright © 2011-2022 走看看