TLE求助
查看原帖
TLE求助
362101
_TLEer_的小号楼主2021/6/11 22:56

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;
}

2021/6/11 22:56
加载中...