ZOJ 1003 Crashing Balloon

#include<cstdio>

#include<cstring>

#include<cmath>

#include<algorithm>

using namespace std;



int n,m;



int flag1,flag2;



void dfs(int a,int b,int x)

{

    if(b==1)

    {

        flag2=1;

        if(a==1) flag1=1;

    }

    if(flag1&&flag2) return;

    if(x==1) return;



    if(a%x==0) dfs(a/x,b,x-1);

    if(b%x==0) dfs(a,b/x,x-1);

    dfs(a,b,x-1);

}



int main()

{

    while(~scanf("%d%d",&n,&m))

    {

        if(n<m) swap(n,m);

        flag1=0,flag2=0;

        dfs(n,m,100);

        if(flag1==0&&flag2==1) printf("%d\n",m);

        else printf("%d\n",n);

    }

    return 0;

}

 

你可能感兴趣的:(Crash)