On Jan 9, 7:10Â*am, aregee <(EMail Removed)> wrote:
> Double Squares
> A doublesquare number is an integer X which can be expressed as the
> sum of two perfect squares. For example, 10 is a doublesquare because
> 10 = 32 + 12. 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 32 + 12 (we don't count 12 + 32
> as being different). On the other hand, 25 can be written as 52 + 02
> or as 42 + 32.
>
> Input
> You should first read an integer N, the number of test cases. The next
> N lines will contain N values of X.
> Constraints
> 0 â‰¤ X â‰¤ 2147483647
> 1 â‰¤ N â‰¤ 100
> Output
> For each value of X, you should output the number of ways to write X
> as the sum of two square
>
> Is the code mention below solution to this question ???? what is the
> fault...
> Error :
> aregee@aregeelaptop:~/Desktop$ python pie.py
> enter a number::10
> pie.py:3: Deprecation Warning: integer argument expected, got float
> Â* for b in range(0,(x**0.5)/2):
>
> #Double square....
>
> x = input("enter a number::")
> for b in range(0,(x**0.5)/2):
> Â* Â* Â* a = (x(b**2))**0.5
> try:
> Â* Â* Â* a = int(a)
> except:
> Â* Â* Â* print("not an integer")
> Â* Â* Â* exit(1)
>
> Â* Â* Â* count = 0;
> Â* Â* Â* count = count + 1;
> if (x == a**2 + b**2):
>
> Â* Â* Â* print "double square"
aregee,
The problem you had was that you put a division by 2 in the range, if
x would be 25 than x**0.5 = 5.0 than you would feed range with 2.5 and
than you get the warning. Also I don't understand why you use de
division by 2, because if for instance you would take 25 you get 5 and
0 but you mis 3 and 4 as match. I've put in a tried list to
I would try the following:
#Double square....
x = input("enter a number::")
for b in range(0,int((x**0.5))):
a = (x(b**2))**0.5
try:
a = int(a)
except:
print("not an integer")
exit(1)
if a < b:
# when a is smaller than b we already have this match
# and all the following matches we also have
break
if (x == a**2 + b**2):
print "double square %s = %s**2 + %s**2" % (x, a, b)
