信息学奥赛一本通c++2021:【例4.6】最大公约数怎么做?
【题目描述】
求两个正整数m,n的最大公约数。
【输入】
输入m,n。
【输出】
m,n的最大公约数。
【输入样例】
4 6
【输出样例】
2
【提示】
【数据范围】
对于全部数据:m,n<4000000。
#############################################
求求了,孩砸真不会
用辗转相除法做
#include <iostream>
using namespace std;
int gcd(int m, int n) {
while (n > 0) {
int r = m % n;
m = n;
n = r;
}
return m;
}
int main() {
int m, n;
cin >> m >> n;
cout << gcd(m, n) << endl;
return 0;
}
使用函数 __gcd(n, m)
(GNU C++)或 gcd(n, m)
(since C++14)即可
我也写了一下,请指正