问题 E: 最小平方数
时间限制: 1 Sec 内存限制: 128 MB
题目描述
已知正整数n,求最小的正整数x,使得n*x是一个平方数。例如n=12,则最小的x是3,n*x为36是一个平方数。
输入
仅一个正整数n,n <= 10000
输出
输出最小的正整数x。
样例输入
4
样例输出
1
思路
没有任何陷进,遍历即可
代码能过 但应该不是最优解
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main(){
int n,x;
cin >> n ;
for (int i = 1 ; ; i++) {
if (i * i < n) {
continue ;
}
if (i*i % n == 0) {
x = i*i / n ;
break ;
}
}
cout << x ;
return 0;
}
/**************************************************************
Problem: 1740
User: 21XXXXXXXX
Language: C++
Result: 正确
Time:0 ms
Memory:2024 kb
****************************************************************/