#include <iostream> #include <cmath> using namespace std; int main() { int a, b; while (cin >> a >> b) { // 注意 while 处理多个 case if(a>b) swap(a,b); if(b%a==0||1==a) {cout<<b<<endl; break;} int i=2,sum=1; while(i<=pow(a,2)){//从较小的一个数中找质因数 if(0==a%i) { while(0==a%i) { a/=i,sum*=i;//sum保存当前所有质因数的积 if(b%i==0) b/=i;//保证b中不包含与a相同的质因数 if(b%a==0) {sum*=b; continue;}//当b能整除a时,说明a中所有因数必定包含在b中 } } ++i; } cout << sum << endl; } }