本文主要是介绍【分解质因数】第十二届蓝桥杯省赛第二场C++ A组/B组《完全平方数》(C++),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【题目描述】
一个整数 a 是一个完全平方数,是指它是某一个整数的平方,即存在一个整数 b,使得 a=b的平方。
给定一个正整数 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
【代码】
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;typedef long long LL;int main()
{LL n;cin >> n;LL res = 1;for (LL i = 2; i * i <= n; i ++ )if (n % i == 0){int s = 0;while (n % i == 0) s ++, n /= i;if (s % 2) res *= i;}if (n > 1) res *= n;cout << res << endl;return 0;
}
这篇关于【分解质因数】第十二届蓝桥杯省赛第二场C++ A组/B组《完全平方数》(C++)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!