#include <stdio.h>
#include <math.h>
// i;q(char*n){double m=0;while(*n)m+=*n++-48;m=sqrt(m)-(int)sqrt(m);return !m;}
// s(char**n,int s){i=-1;while(++i<s)if(q(n[i]))printf("%s\n",n[i]);}
int q(char*n)
{
double m=0;
while(*n) // sum digits
m+=*n++-48;
// get the decimal part
// true if decimal part is zero
return !m;
}
// input is text, can be a file
void s(char**n, int s)
{
int i=-1;
while(++i<s) // for each number in input
if(q(n[i])) // if is square
printf("%s\n",n
[i
]); // output is terminal }
int main(void)
{
char* test[] = {"1","2","4", "9","16","25","1111"};
s(test, sizeof(test)/sizeof(test[0]));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgovLyBpO3EoY2hhcipuKXtkb3VibGUgbT0wO3doaWxlKCpuKW0rPSpuKystNDg7bT1zcXJ0KG0pLShpbnQpc3FydChtKTtyZXR1cm4gIW07fQovLyBzKGNoYXIqKm4saW50IHMpe2k9LTE7d2hpbGUoKytpPHMpaWYocShuW2ldKSlwcmludGYoIiVzXG4iLG5baV0pO30KCmludCBxKGNoYXIqbikKewoJZG91YmxlIG09MDsKCQoJd2hpbGUoKm4pIC8vIHN1bSBkaWdpdHMKCQltKz0qbisrLTQ4OwoJCgkvLyBnZXQgdGhlIGRlY2ltYWwgcGFydAoJbT1zcXJ0KG0pLShpbnQpc3FydChtKTsKCQoJLy8gdHJ1ZSBpZiBkZWNpbWFsIHBhcnQgaXMgemVybwoJcmV0dXJuICFtOwp9CgovLyBpbnB1dCBpcyB0ZXh0LCBjYW4gYmUgYSBmaWxlCnZvaWQgcyhjaGFyKipuLCBpbnQgcykKewoJaW50IGk9LTE7CgkKCXdoaWxlKCsraTxzKSAvLyBmb3IgZWFjaCBudW1iZXIgaW4gaW5wdXQKCQlpZihxKG5baV0pKSAvLyBpZiBpcyBzcXVhcmUKCQkJcHJpbnRmKCIlc1xuIixuW2ldKTsgLy8gb3V0cHV0IGlzIHRlcm1pbmFsCn0KCmludCBtYWluKHZvaWQpCnsKCWNoYXIqIHRlc3RbXSA9IHsiMSIsIjIiLCI0IiwgIjkiLCIxNiIsIjI1IiwiMTExMSJ9OwoJcyh0ZXN0LCBzaXplb2YodGVzdCkvc2l6ZW9mKHRlc3RbMF0pKTsKCXJldHVybiAwOwp9Cg==