//从2开始不断对两数进行累除,将能整除的约数相乘,最后将约数的乘积与背除后的两数相乘即为最大公约数。
#include<iostream>
using namespeace std;
int main(){
int a,b;
cin >> a >> b; //获取输入
int c = 1; //存储约数的乘积
for(int i = 2;i < min(a,b);i++){ //从2开始到较小的数
while((a % i == 0) && (b % i == 0)){ //能整除两数的约数
a /= i; //对a、b整除
b /= i;
c /= i; //存储约数乘积
}
}
cout << c * a * b <<endl; //最大公约数
return 0;
}
京公网安备 11010502036488号