Hello I have created this program to check if a number is a prime number. It works but for some reason says that 999 is a prime number. Where is my mistake. It would be grea
Trace it. x
starts with 2
, then tests 999 % 2
; it is 1
, so else
is executed, "Prime number!" is printed, and loop is broken out of. Program ends.
Instead, you need to print "Prime number!" only when you tested all possibilities for x
. The easiest way to do that is to unindent else:
(and delete break
there):
for x in prime_range:
if nnumber % x == 0:
print 'Not a Prime Number!'
break
else:
print 'Prime Number!'
Python executes else
of a for
when for
completes withoout being broken: exactly what you want.