That doesn't seem that difficult; for some reason it makes me think of tokenizing a user typed-in string, looking through the resulting substrings to see which are numbers (and then putting those numbers into an array), etc. That assumes you aren't assuming every passed in value is a number, or that you aren't doing it by having something like an infinite loop that terminates with some escape value. If you are doing the cin stuff, you can test to see if it is a number and then if it is add it in. The rest of the calculation is just knowing if the number of numbers is a valid square or not.
hen you could just do for loops to figure out the row, column, and diagonal sums (well the diagonal sums could be done in the same loop). Knowing if a number is repeated is also easy to do; I forget the efficient way of doing that though. Like, I would think that the list of numbers entered isn't going to be !@#$% huge so the list of numbers doesn't have to be sorted with some technique or if the numbers themselves would be best put into a data structure upon being read in (red-black trees up in this !@#$%). A two-dimensional array can be expressed as a one-dimension one.
You can do the problem, all that crap I mentioned above, especially the second paragraph just makes it look worse. If you are doing this in Java it might be more of a cakewalk though.