Loading [MathJax]/jax/output/HTML-CSS/jax.js

First time here? Check out the FAQ!

Ask Your Question
1

looping of equality function

asked 5 years ago

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

Preview: (hide)

Comments

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 **.

John Palmieri gravatar imageJohn Palmieri ( 5 years ago )

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 ( 5 years ago )

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 ( 5 years ago )

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

Sha gravatar imageSha ( 5 years ago )

1 Answer

Sort by » oldest newest most voted
0

answered 5 years ago

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)
Preview: (hide)
link

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

Stats

Asked: 5 years ago

Seen: 281 times

Last updated: Feb 13 '20