【题目描述】
求两个正整数m,n的最大公约数。
【输入】
输入m,n。
【输出】
m,n的最大公约数。
【输入样例】
4 6
【输出样例】
2
【数据范围】
对于全部数据:m,n<4000000。
#include<iostream>
using namespace std;
int main() {
int m = 0, n = 0, temp = 0;
cin >> m >> n;
while (m % n) {
temp = m % n;
m = n;
n = temp;
}
cout << n;
return 0;
}
使用辗转相除法求最大公约数,例如18,12。
$18\div 12=1...6$
$12\div6=2...0$
不断用除数除以余数,当余数为0的时候,除数就是最大公约数