×
欧几里德算法 C++ 实现示例
#include
#include
#include
long long gcdBySubtraction(long long a, long long b) {
if (a <= 0 || b <= 0) {
throw std::invalid_argument("输入必须为正整数!");
}
int steps = 0;
while (a != b) {
steps++;
if (a > b) {
a = a - b;
} else {
b = b - a;
}
}
return a;
}
#include
#include
#include
long long gcdByDivision(long long a, long long b) {
if (a <= 0 || b <= 0) {
throw std::invalid_argument("输入必须为正整数!");
}
int steps = 0;
while (b != 0) {
steps++;
long long remainder = a % b;
a = b;
b = remainder;
}
return a;
}