Ask Your Question

looping of equality function

asked 2020-02-12 21:52:34 -0600

Sha gravatar image

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):

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

edit retag flag offensive 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 ( In a Sage file, ^ is converted to **.

John Palmieri gravatar imageJohn Palmieri ( 2020-02-13 00:11:35 -0600 )edit

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.

Sha gravatar imageSha ( 2020-02-13 02:53:18 -0600 )edit

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?

John Palmieri gravatar imageJohn Palmieri ( 2020-02-13 10:28:25 -0600 )edit

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

Sha gravatar imageSha ( 2020-02-16 21:33:07 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2020-02-13 03:30:16 -0600

jipilab gravatar image

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)
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2020-02-12 21:52:34 -0600

Seen: 36 times

Last updated: Feb 13