踩气球
代码:
感觉题意说明不够全,好像是POJ的原题。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1000+50;
int sign1,sign2,n,m,x1=1,x2=1;
void dfs(int x){
if(x==101){
if(x1==n&&x2==m)sign1=sign2=1;
if(x1==n)sign1=1;
return ;
}
dfs(x+1);
if(n%x==0&&x1*x<=n){
x1*=x;
dfs(x+1);
x1/=x;
}
if(m%x==0&&x2*x<=m){
x2*=x;
dfs(x+1);
x2/=x;
}
}
int main(){
while(1){
cin>>n>>m;
sign1=sign2=0;x1=x2=1;
if(n==0&&m==0)break;
if(n>m){
int t=n;n=m;m=t;
}
dfs(2);
if(sign1==sign2)cout<<m<<endl;
else cout<<n<<endl;
}
return 0;
}