Prime Number Python For Loops
Solution 1:
You can break and use else:
n = int(input("Enter a number: "))
for i inrange(2, n):
if n % i == 0:
print(False)
breakelse:
print(True)
True will only be printed if the loop completes fully i.e no n % i was equal to 0.
Solution 2:
Your code always prints True at the end, and prints a number of Falses before that. Instead, you should have a variable (isPrime?) that gets initialized to True and gets set to False when you find it is divisible by something. Then print that variable at the end.
Solution 3:
You're just printing each intermediate value, if you use return in a function it works fine
defprime(n):
for i inrange(2, n):
if n%i == 0:
returnFalsereturnTrue>>> prime(5)
True>>> prime(12)
FalseSolution 4:
You could use the for-else clause here. Also, you don't need to go beyond the square root of n:
import math
for i in range(2, int(math.sqrt(n))):
if n % i == 0:
print"False"breakelse:
print"True"Solution 5:
There's a lot of different ways to fix your code, but all of them hinge on the fact that you should be breaking out of that loop if you find a divisor (ie if n%i == 0)
Usually, you'd have a boolean value storing whether or not you've found a divisor, but python lets you do the following
n = int(input("Enter a number: "))
for i inrange(2,n):
if n%i == 0:
print(False)
breakelse:
#else statement only happens if you don't break out of the loopprint(True)
Post a Comment for "Prime Number Python For Loops"