Reputation: 157
Hello, I'm relatively new to Python. The code below generates a random number in python from 0 to 10. It then parses another function to determine if it is a prime, if it is not, generate a new number and repeat. Can anyone tell me why it doesn't seem to work?
Code:
import random
def gen ():
x=random.randint(0,10)
isprime (x)
if isprime(x):
return x
else:
gen()
def isprime (number):
b = number - 1
while True:
if number > 1:
if b == 1:
return True
break
elif number % b == 0:
return False
b = b-1
else:
return False
g = gen()
g
Upvotes: 1
Views: 113
Reputation: 3078
You need to recursively return the answer from the gen
call like
def gen ():
x=random.randint(0,10)
isprime (x)
if isprime(x):
return x
else:
return gen()
Additionally, you may want to be sure that you use consistent indenting or the Python interpreter may complain about it.
Upvotes: 1