题目描述
给定一个整数 n,请找出 n 的最大平方因子。所谓平方因子,就是一个 n 的因子,且是一个完全平方数。最大平方因子就是 n 的所有平方因子中最大的数。
如 12 的最大平方因子为 4,81 的最大平方因子为其本身,21 的最大平方因子为 1。
输入格式
单个整数表示 n。
输出格式
单个整数表示 n 的最大平方因子。
数据范围
- 对于 50%50% 的数据,1≤n≤10000;
- 对于 100%100% 的数据,1≤n≤10,000,000。
样例数据
输入:
12
输出:
4
输入:
81
输出:
81
输入:
21
输出:
1
题解
本题关键点:用枚举法算出该数的最大平方因子,代码如下。
#include <iostream>
using namespace std;
int main() {
int n,sum;
cin>>n;
for(int i=1;i*i<=n;i++){
if(n%(i*i)==0){
sum=i*i;
}
}
cout<<sum<<endl;
return 0;
}