# looping of equality function

Hi, I have the equation x^4+y^4=z^3. I want to run each variable from -100 till 100 to see which numbers satisfy this equation. Here is what I have done:

x,y,z= var('x y z')
for x in range(-100, 100):
for y in range(-100, 100):
for z in range(-100, 100):
x^4+y^4==z^3
print(x,y,z)


There is definitely something wrong with the coding that's not giving me the desired answer. Can someone enlighten me, please.

edit retag close merge delete

First, use if. Second, what answer are you getting? If you are using this code in a Python file (as opposed to a Sage file), then the ^symbol will be interpreted as in Python as bitwise exclusive or (https://docs.python.org/3/reference/e...). In a Sage file, ^ is converted to **.

the answers I am planning to obtain is the list of numbers for x, y, z that satisfies the equation x^4+y^4=z^3.

It was clear what answers you were hoping for, but you said it wasn't giving the desired answer. So again: what answers was it giving?

oh sorry... it was giving an error code every time I ran the code.

Sort by » oldest newest most voted

Defining x,y,z to be variables and then using them as integers is not really appropriate. The indentation was also missing, along with an if.

You do not need to declare the variables if you use them in a range:

sage: for x in range(-100,101):
....:     for y in range(-100,101):
....:         for z in range(-100,101):
....:             if x^4+y^4 == z^3:
....:                 print(x,y,z)


You can also use more advanced iterators and shorten the code:

sage: import itertools
sage: for x,y,z in itertools.product(srange(-100,101),repeat=3):
....:     if x^4 + y^4 == z^3:
....:         print(x,y,z)

more