Python Prime Number
Coding Question and Solutions
Check whether a number is Prime or Not Python Program
A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself. The first few prime numbers are {2, 3, 5, 7, 11, ….}.
This Python program checks whether a given number is a prime number or not. A prime number is a perfect natural number that can only be divisible by itself and by 1. This Python program checks the factors using the for loop and conditional statement and prints the desired output.
#Variable definition and assignment
inputn = 3
#Taking user input
#inputn = int(input("Enter a number: "))
if inputn > 1:
# check for factors
for i in range(2,inputn):
if (inputn % i) == 0:
print(inputn,"is not a prime number.")
# print(i,"times",inputn//i,"is",inputn) - try if intrested times output
break
else:
print(inputn,"is a prime number.")
#If the input number is less than or equal to 1, then it is not prime
else:
print(inputn,"is not a prime number.")
Output
In this article, we have extensively discussed what Prime number in Python is and how to identify it. We hope that this blog has helped you enhance your knowledge regarding Python and if you would like to learn more, check out our articles. Do upvote our blog to help other ninjas grow. Happy Coding!”
Easy Method
1. Iterative Solution - In this method we’ll use simple if-else statements and for loop to iterate though all the number in a given range while checking for factors of the number.
For a given integer input we check,
- If the number is greater than 2.
- If the number has any factors in the range [2,number].
- If any off the above conditions are satisfied, the number isn’t a Prime.
num = 8
flag = 0
for i in range(2,num):
if num%i==0:
flag = 1
break
if flag == 1:
print('Not Prime')
else:
print("Prime")
Output
2. Break Condition
num = 8
flag = 0
if num<2:
flag = 1
else:
for i in range(2,num):
if num%i==0:
flag = 1
break
if flag == 1:
print('Not Prime')
else:
print("Prime")
Output
3. Optimization by n/2 iterations
num = 15
flag = 0
if num<2:
flag = 1
else:
for i in range(2,int((num/2)+1)):
if num%i==0:
flag = 1
break
if flag == 1:
print('Not Prime')
else:
print("Prime")
Output
4. Optimization by √n
num = 7
flag = 0
if num<2:
flag = 1
else:
for i in range(2,int(pow(num,0.5)+1)):
if num%i==0:
flag = 1
break
if flag == 1:
print('Not Prime')
else:
print("Prime")
Output
5. Optimization by skipping even iteration
num = 15
flag = 0
if num<2:
flag = 1
elif num == 2:
flag = 0
else:
for i in range(3,int(pow(num,0.5)+1),2):
if num%i==0:
flag = 1
break
if flag == 1:
print('Not Prime')
else:
print("Prime")
Output
6. Basic Recursion technique
num = 15
def checkPrime(num,iter=2):
if num == iter:
return True
if num%iter==0:
return False
if num<2:
return False
return checkPrime(num,iter+1)
if checkPrime(num)==True:
print("Prime")
else:
print("Not Prime")
Output
Method 1
Using For Loop
The idea to solve this problem is to iterate through all the numbers starting from 2 to (N/2) using a for loop and for every number check if it divides N. If we find any number that divides, we return false. If we did not find any number between 2 and N/2 which divides N then it means that N is prime and we will return True.
num = 2 # If given number is greater than 1 if num > 1: # Iterate from 2 to n / 2 for i in range(2, int(num/2)+1): # If num is divisible by any number between # 2 and n / 2, it is not prime if (num % i) == 0: print(num, "is not a prime number") break else: print(num, "is a prime number") else: print(num, "is not a prime number")
Output
Method 2
Now let’s see the code for the first optimization method ( i.e. checking till √n )
from math import sqrt
# n is the number to be check whether it is prime or not
n = 1
# this flag maintains status whether the n is prime or not
prime_flag = 0
if(n > 1):
for i in range(2, int(sqrt(n)) + 1):
if (n % i == 0):
prime_flag = 1
break
if (prime_flag == 0):
print("True")
else:
print("False")
else:
print("False")
Output
Method 3
Using a for...else statement
# Program to check if a number is prime or not
num = 407
# To take input from the user
#num = int(input("Enter a number: "))
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
# if input number is less than
# or equal to 1, it is not prime
else:
print(num,"is not a prime number")
Output
Method 4
Using Lambda Function Print Prime Number or Not
isprime = lambda x: int(x) > 0 and (x == 2 or x == 3 or [x % i == 0 for i in range(2,int(x**0.5)+1)].count(True) == 0)
print(isprime(-7))
print(isprime(7))
Output
Method 5
Using a flag variable
# Program to check if a number is prime or not
num = 29
# To take input from the user
#num = int(input("Enter a number: "))
# define a flag variable
flag = False
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2, num):
if (num % i) == 0:
# if factor is found, set flag to True
flag = True
# break out of loop
break
# check if flag is True
if flag:
print(num, "is not a prime number")
else:
print(num, "is a prime number")
Method 6
Print Only Prime Number From 0 to User Defined Numbers, Using def Function in Python
def is_prime(num):
for i in range(2,num):
if (num % i) == 0:
return False
return True
def all_primes(num):
primes = []
for n in range(2,num+1):
if is_prime(n) is True:
primes.append(n)
return primes
num = int(input("Enter upper limit: "))
primes = all_primes(num)
print(primes)
Output
Explanation
The first one is the is_prime that you have seen before. Now we created another function named all_primes. In the all_primes function, we create a list named primes to hold the prime numbers. Then run a for loop using range. The range starts at 2 and runs until num+1 so that it goes until num. We are starting at 2. Because 2 is the first prime number. Inside the loop, call the is_prime function and check the return. If the return is True then append the n in the primes list. Then return the primes list.
That’s it.
Method 7
Short Python Code to check Number is Prime or not, (Will only check from range 2 to n)
a=int(input("Enter number: "))
k=0
for i in range(2,a//2+1):
if(a%i==0):
k=k+1
if(k<=0):
print("Number is prime")
else:
print("Number isn't prime")
Output
Program Explanation
1. User must enter the number to be checked and store it in a different variable.
2. The count variable is first initialized to 0.
3. The for loop ranges from 2 to the half of the number so 1 and the number itself aren’t counted as divisors.
4. The if statement then checks for the divisors of the number if the remainder is equal to 0.
5. The count variable counts the number of divisors and if the count is lesser or equal to 0, the number is a prime number.
6. If the count is greater than 0, the number isn’t prime.
7. The final result is printed.
Method 8
Write a Python function that takes a number as a parameter and check the number is prime or not.
Note : A prime number (or a prime) is a natural number greater than 1 and that has no positive divisors other than 1 and itself.
def test_prime(n):
if (n==1):
return False
elif (n==2):
return True;
else:
for x in range(2,n):
if(n % x==0):
return False
return True
print(test_prime(9))
Output