#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <queue>
#include <map>
#include <stack>
#include <list>
#include <vector>
using namespace std;
#define LL long long
class SquareDivisor
{
public:
long long biggest(long long x)
{
long long ans=1;
for (long long i=2;i<=100000 && i<=x;i++)
{
LL k=i*i;
while (x % k==0)
{
x/=k;
ans*=k;
}
if (x % i==0) x/=i;
}
LL r=sqrt(double(x));
if (r*r==x) ans*=x;
return ans;
}
}m;
//LL SquareDivisor::biggest();
int main()
{
LL n;
scanf("%lld",&n);
cout<<m.biggest(n)<<endl;
return 0;
}TC。求一个大数的最大因子满足完全平方数。
最新推荐文章于 2024-04-11 12:58:11 发布
本文介绍了一个C++程序,用于寻找一个长整数的最大平方因子。通过分解质因数并检查每个可能的平方因子来实现这一目标。对于每个找到的平方因子,会从原始数中去除该因子,并更新结果。最后,如果剩余的数是一个完全平方数,则将其完全包含进最终答案。
3104

被折叠的 条评论
为什么被折叠?



