judge函数是怎么执行的?求问
/*函数不是很懂??????*/
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
bool atrue, btrue;
int judge(int m, int n, int p)
{
if (atrue)
return 0;
if (m == 1 && n == 1) //均正确
{
atrue = true;
return 0;
}
if (n == 1) //如果b正确,即赢
{
btrue = true;
}
while (p > 1)
{
if (m%p == 0) //p是m的因子
{
judge(m / p, n, p - 1);
}
if (n%p == 0) //p是n的因子
{
judge(m, n / p, p - 1);
}
p--;
}
return 0;
}
int main()
{
int a, b;
while (cin >> a >> b)
{
if (a < b)
swap(a, b);
atrue = false;
btrue = false;
judge(a, b, 100);
if (!atrue&&btrue)
cout << b << endl;
else
cout << a << endl;
}
return 0;
}