pythonpython-3.xnumbersprimes

Validate if input number is prime


Trying to write a program that checks if a number is prime. Wrote the below code, but do not understand why do I have an output of 2 lines:

num = int(input("Provide number to check if prime: "))
if num <=1:
    print("Invalid choice, try again")
    num = int(input("Provide number to check if prime: "))

for i in range(2,num):
    if num% i ==0:
        print("Number is not prime")
        break
    if num %i !=0:
        print("Number is prime")

My output is :

Provide number to check if prime: 15
Number is prime
Number is not prime

Solution

  • The sympy.isprime() is a built-in function under the SymPy module and can be utilized for checking of possible prime numbers. It is a direct function and returns True if the number to be checked is prime and False if the number is not prime.

    >>> import sympy
      
    >>> sympy.isprime(8)
    
    False
    
    >>> sympy.isprime(11)
    
    True
    
    

    or else define a function like this

    >>> def isPrime(k):
        
        # 1 is not prime number
        if k==1:
            return False
    
        # 2, 3 are prime
        if k==2 or k==3: 
            return True
    
        # even numbers are not prime
        if k%2==0: 
            return False
    
        # check all numbers till square root of the number , 
        # if the division results in remainder 0
        # (skip 2 since we dont want to divide by even numbers)
    
        for i in range(3, int(k**0.5)+1, 2):
            if k%i==0:
                return False
    
        return True
    
    >>> print(isPrime(13))
    
    True
    
    >>> print(isPrime(18))
    
    False