我是新手,就把别人的程序(C)改成了C++写的,就通不过,大家帮我看看这到底是为什么
#include <iostream>
using namespace std;
bool flag1=false; //true表示挑战者为真
bool flag2=false; //true表示挑战者和获胜者均为真
void f(int m,int n,int p)
{//搜索函数
if(true==flag2)
return;
if(1==m&&1==n)
{
flag2=true;
flag1=true;
return;
}
if(1==n)
{
flag1=true;
}
if(p<2) return;
if(0==m%p) f(m/p,n,p-1);
if(0==n%p) f(m,n/p,p-1);
f(m,n,p-1);
}
int main()
{
int m,n,t;
while(cin>>m>>n)
{
if(m<n)
{
t=m; m=n; n=t;
}
f(m,n,100);
if(flag2||!flag1)
cout<<m<<endl;
else if ( flag1==true&& flag2==false )
cout<<n<<endl;
}
return 0;
}
为什么就是Wrong Answer ?