题目1476:平方因子
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:358
解决:223
-
题目描述:
-
给定一个数n,判定它是否有一个不为1的完全平方数因子。也就是说,是否存在某个k,k>1,使得k*k能够整除n。
-
输入:
-
每行一个整数n,1<n<10000,n=0标志输入结束。
-
输出:
-
对于每一个输入的整数,在单独的一行输出结果,如果有不为1的完全平方数因子,则输出Yes,否则输出No。请注意大小写。
-
样例输入:
-
15 12 0
-
样例输出:
-
No Yes
-
-
1234567891011121314151617181920212223242526
#include<iostream>
#include<cmath>
using
namespace
std;
int
main()
{
int
n,i;
string s;
while
(cin>>n&&n)
{
s=
"No"
;
int
j=(
int
)
sqrt
(1.0*n);
for
(i=2;i<=j;++i)
if
(n%(i*i)==0) { s=
"Yes"
;
break
; }
cout<<s<<endl;
}
return
0;
}
/**************************************************************
Problem: 1476
User: 3011216016
Language: C++
Result: Accepted
Time:10 ms
Memory:1532 kb
****************************************************************/