在C ++中实现内置的__gcd方法

时间:2014-07-27 13:21:18

标签: c++ greatest-common-divisor

stl算法库中的内置__gcd方法是否在其实现中使用Euclid算法?

1 个答案:

答案 0 :(得分:2)

源代码似乎是

  /**
   *  This is a helper function for the rotate algorithm specialized on RAIs.
   *  It returns the greatest common divisor of two integer values.
   */
  template<typename _EuclideanRingElement>
    _EuclideanRingElement
    __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
    {
      while (__n != 0)
        {
          _EuclideanRingElement __t = __m % __n;
          __m = __n;
          __n = __t;
        }
      return __m;
    }

是的,它确实使用欧几里得算法。

编辑:我误解了这个问题,这是g ++ 4.9.1标题中的实现。