Script kiddies
Script kiddies

Reputation: 157

Prime number using functions in python error

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

Answers (1)

DanGar
DanGar

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

Related Questions