UVa 10958 - How Many Solutions?

Prove it is a hyperbola and (0,0) is one point on it. The hyperbola is d=x*y. d=abs(m*n*p*p). As hyperbola is symmetrical, try to find integer points on 1 half of it, which is positive factor number of d. FacCount=1; Use a testFactor from 2. If testFactor is a factor, d divide by that, increase thisFactorCount; otherwise, FacCount*=thisFactorCount and increase testFactor and clear thisFactorCount. Remember to not count(0,0) and output FacCount*2-1.