//**************************************************************************************************** // // 求两个自然数的最大公约数 - C++ - by Chimomo // // 辗转相除法 // //**************************************************************************************************** #include <iostream> #include <cassert> #include <stack> #include <math.h> using namespace std ; int GreatestCommonDivisor(int a, int b) { int temp; if(a < b) { // 交换两个数。使大数放在a的位置上。 temp = a; a = b; b = temp; } while(b != 0) { // 利用辗转相除法,直到b为0为止。 temp = a % b; a = b; b = temp; } return a; } int main() { cout << GreatestCommonDivisor(318, 87632) << endl; return 0; } // Output: /* 2 */