描述
给定一个数n,判定它是否有一个不为1的完全平方数因子。也就是说,是否存在某个k,k>1,使得k*k能够整除n。
输入描述:
每行一个整数n,1<n<10000
输出描述:
对于每一个输入的整数,在单独的一行输出结果,如果有不为1的完全平方数因子,则输出Yes,否则输出No。请注意大小写。
示例1
输入:
15
12
0
复制
输出:
No
Yes
解题思路:注意k*k整除n,n是被除数,所以要想整除就要k*k<=n
#include<stdio.h>
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==0) break;
int i=2;
for( i=2;i*i<=n;i++)
{
if(n%(i*i)==0)
{
printf("Yes\n");
break;
}
}
if(i*i>n) printf("No\n");
}
return 0;
}