#include <stdio.h>

int m, n;
bool oka= false, okb= false;

void dfs( int a, int b, int c )
{
    
if( c> 100 ) return;
    
else if( b== 1 )
    {
        
if( a== 1 ) oka= true;
        
else        okb= true;
    }
    
    
if( a% c== 0 ) dfs( a/ c, b, c+ 1 );
    
if( b% c== 0 ) dfs( a, b/ c, c+ 1 );
    
    dfs( a, b, c
+ 1 );
}

int main()
{
    
while( scanf("%d%d"&m, &n )!= EOF )
    {
        
int t;
        
if( m< n ) t= m, m= n, n= t;
        
        oka
= okb= false;
        dfs( m, n, 
2 );
        
if( oka ) printf("%d\n", m );
        
else if( okb ) printf("%d\n", n );
        
else       printf("%d\n", m );
    }
    
    
return 0;
}
posted on 2008-11-14 14:04 Darren 阅读(789) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理