AcWing 808. 最大公约数
原题链接
中等
作者:
Backkom
,
2021-03-20 13:02:46
,
所有人可见
,
阅读 330
从题目范围内最大的数开始像小的数遍历,第一个能同时整除a,b的就是最大公因数
#include <iostream>
using namespace std;
int gcd (int a, int b)
{
for (int i = 1000; i; i --)
if (a % i == 0 && b % i == 0)
return i;
}
int main()
{
int a, b;
cin >> a >> b;
cout << gcd(a, b) << endl;
return 0;
}
欧几里得/ 辗转相除法
#include <iostream>
#include <algorithm>
using namespace std;
int gcd (int a, int b)
{
if (a < b) swap(a, b);
if (!b) return a;
while(b)
return gcd(b, a % b);
}
int main()
{
int a, b;
cin >> a >> b;
cout << gcd(a, b) << endl;
return 0;
}