原理
详见我的博客 【离散数学】 MIT 6.042J 笔记 - Lecture 4 Number Theory I 中 Euclid‘s Algorithm 部分。
程序
#include <iostream>
using namespace std;
int gcd(int a, int b)
{
if (a < b) swap(a, b);
if (b == 0) return a;
return gcd(a % b, b);
}
int main(int argc, char** argv)
{
int a = 0, b = 0;
begin:
cout << "Please input two positive integers: ";
cin >> a >> b;
if (cin.bad() || cin.fail() || a <= 0 || b <= 0)
{
cerr << "\nError input! Please try again." << endl;
cin.clear();
cin.ignore();
goto begin;
}
cout << "gcd(" << a << "," << b << ") = " << gcd(a, b) << endl;
return 0;
}
输出示例
ALL RIGHTS RESERVED © 2021 Teddy van Jerry
欢迎转载,转载请注明出处。