1、不要从1开始枚举,因为只要判断n的平方根是否为整数即可。
2、用int是WA,改为unsigned int就AC了,不知道为什么。
#include <stdio.h>
#include <math.h>
int main(void)
{
unsigned int i,n;
while(scanf("%u",&n)==1)
{
if(!n) break;
i=floor(sqrt(n));
if(i*i==n) printf("yes\n");
else printf("no\n");
}
return 0;
}