一个整数 a 是一个完全平方数,是指它是某一个整数的平方,即存在一个整数 b,使得 a = b ^ 2。给定一个正整数 n,请找到最小的正整数 x,使得它们的乘积是一个完全平方数。
输入格式
输入一行包含一个正整数 n。
输出格式
输出找到的最小的正整数 x。
数据范围
对于 30% 的评测用例,1≤n≤1000,答案不超过 1000。
对于 60% 的评测用例,1≤n≤10^8,答案不超过 10^8。
对于所有评测用例,1≤n≤10^12,答案不超过 10^12。
输入样例1:
12
输出样例1:
3
输入样例2:
15
输出样例2:
15
来源:AcWing 3491.完全平方数
#includetypedef long long ll; using namespace std; int main() { ll n,ans = 1; cin >> n; for(ll i = 2; i * i <= n; i++) if(n%i==0) { int cnt = 0; while(n%i==0)cnt++,n /= i; if(cnt&&cnt%2)ans *= i; } if(n)ans *= n; cout<
试除法分解质因式
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)