您的位置:首页 > 其它

ZOJ 1003 Crashing Balloon

2010-08-14 17:59 393 查看
/*ZOJ 1003 Crashing Balloon
来自网络。自己的只是变量名和这不同,总提示超时,郁闷。。。。
*/
#include <stdio.h>

int flag1 , flag2;

void dfs ( int n , int m , int fac )
{
if ( flag1== 1 )
return ;
if ( m==1 && n==1 )
{
flag1 = 1;
flag2 = 1;
return ;
}

if ( m==1 )
flag2 = 1;
if ( fac<2 )      return ;
if ( n % fac == 0 )
dfs ( n/fac, m , fac-1 );

if ( m%fac== 0 )
dfs ( n , m/fac, fac-1 );

dfs ( n , m , fac-1 ) ;

}

int main()
{
int tmp ,n , m ;

while ( scanf("%d %d",&n,&m)!=EOF )
{
if ( m>n )
{
tmp = m ;
m= n ;
n = tmp;
}
flag1 = flag2 = 0;

dfs ( n , m , 100 );  //判断n,m能否被除尽

if ( flag1 || !flag2 )   //能除尽表示说真话。n能被除尽(包括m能或者不能被除尽)或n不能除尽且m不能除尽
printf("%d/n",n);
else if ( flag2==1&& flag1==0 )
printf("%d/n",m);

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: