#Julia - 38 bytes
!X=filter(i->√sum(digits(i))%1==0,X)
It's pretty easy to see what this does. digits
converts a number into a list of its digits, sum
thus calculates the digit-sum, √
will then produce a whole number if the number is a square, otherwise there will be a fractional part. %1
will return only the fractional part, and if it's zero (==0
), filter
will keep it on the list, otherwise it gets filtered out.
Used as ![22228,4,113125,22345]