Double Squares
https://www.facebook.com/codingcompetitions/hacker-cup/2011/qualification-round/problems/A
Last updated
https://www.facebook.com/codingcompetitions/hacker-cup/2011/qualification-round/problems/A
Last updated
A double-square number is an integer X which can be expressed as the sum of two perfect squares. For example, 10 is a double-square because . Your task in this problem is, given X, determine the number of ways in which it can be written as the sum of two squares. For example, 10 can only be written as (We don't count as being different). On the other hand, 25 can be written as or as .
You should first read an integer N, the number of test cases. The next N lines will contain N values of X.
For each value of X, you should output the number of ways to write X as the sum of two squares.
Given , we can rewrite it as . So that we are able to iterate the . This is also useful info for us when it comes to the limit of the iteration, which is the root of . After that, we can try if we square root the , transform it to int , and it still same. If it does, we proved that the equation is valid thus add a counter in there.
After the iteration of finishes, output the result.