zoj 1003 Crashing Balloon

#include<stdio.h>
#include<algorithm>
using namespace std;
int fa,fb;

void dfs(int a,int b,int k)
{
    if(b==1)
    {
        fb=1;
        if(a==1) fa=1;
    }

    if(k==1||(fa&&fb)) return ;
    if(a%k==0) dfs(a/k,b,k-1);
    if(b%k==0) dfs(a,b/k,k-1);

    dfs(a,b,k-1);
}

int main()
{
    int a,b;
    while(~scanf("%d%d",&a,&b))
    {
        if(a<b) swap(a,b);
        fa=fb=0;
        dfs(a,b,100);
        if(fa==0&&fb==1)
            printf("%d\n",b);
        else
            printf("%d\n",a);
    }
    return 0;
}

你可能感兴趣的:(zoj 1003 Crashing Balloon)