Implementation of the in-built __gcd method in C++

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-24 15:51:16

问题


Does the in-built __gcd method in stl-algorithm library use Euclid's algorithm in its implementation?


回答1:


The source code seems to be

  /**
   *  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;
    }

So yes, it does use the Euclidean algorithm.

EDIT: I misread the question slightly, this is the implementation in the headers for g++ 4.9.1.



来源:https://stackoverflow.com/questions/24981380/implementation-of-the-in-built-gcd-method-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!