求助UKE
查看原帖
求助UKE
658973
what_can_I_do楼主2022/12/4 21:17

暴力。

#include<bits/stdc++.h>
using namespace std;
long long n;
inline long long az(long long n)
{
	n=abs(n);
	long long sum=0;
	for(register long long i=2;i*i<=n;i++)
		if(n%i==0)
		{
			sum++;
			while(n%i==0) n/=i;
			if(n==1) if(sum==1) return -1;else return i;
		}
	if(sum==0) return -1;
	else return n;
}
int main()
{
	while(cin>>n,n) printf("%lld\n",az(n));
	return 0;
}
2022/12/4 21:17
加载中...