Rt.
code:
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <map>
#include <cstdio>
#define int long long
using namespace std;
int gcd(int a, int b)
{
if (!a)
return b;
if (!b)
return a;
return gcd(a % b, b % a);
}
inline void f(int n)
{
int k, i, ans = 0;
for (i = 2; i * i <= abs(n); i++)
{
k = 0;
while (n % i == 0)
n /= i, k++;
ans = gcd(ans, k);
}
if (abs(n) != 1)
cout << 1 << endl;
else
{
if (n == -1)
{
while (!(ans % 2))
ans /= 2;
}
cout << ans << endl;
}
}
signed main()
{
int n;
while (cin >> n && n)
f(n);
return 0;
}