Kotlin Program to Check Whether Number is Prime

Write a Kotlin Program to check whether number is prime or not.

For example,

Input
12

Output
12 is not prime
Input
13

Output
13 is prime

1. Program to Check Whether Number is prime or not

Now, we will check whether number is prime or not using for loop

Sourcecode –

fun main() {
    val read = Scanner(System.`in`)

    println("Enter n:")
    val n = read.nextInt()

    if(checkPrime(n))
        println("$n is prime")
    else
        println("$n is not prime")
}

private fun checkPrime(n: Int): Boolean {

    // Number less than or equal 1 is not prime
    if(n <= 1)
        return false

    // 2 is only even prime number
    if(n == 2)
        return true

    // Check if number (> 2) is even. If yes, it is not prime.
    if(n % 2 == 0)
        return false

    var flag = true

    val root  = sqrt(n.toDouble()).toInt()

    // We need to check till square root of n only to find whether n is prime.
    for(i in 3..root step 2) {
        if((n % i) == 0) {
            flag = false
            break
        }
    }

    return flag
}

When you run the program, output will be –

Enter n:
101
101 is prime
Explanation:

Here, we have created an object of Scanner. Scanner takes an argument which says where to take input from.
System.`in` means take input from standard input – Keyboard.

read.nextInt() means read anything (i.e. Int value) entered by user before space or line break from standard input – Keyboard.

We stored entered value in variable n

We defined a function checkPrime that returns true if n is prime else it returns false.

Inside checkPrime function,

  • If n <= 1 , it's not a prime number. So, returns false.
  • If n == 2, it only even prime number. So, returns true.
  • Then, we check if n is even or not. Not that this will be checked only if above two conditions are false. If n is even, it’s not prime number. So, returns false.
  • Now, we know this number is not even and greater than 2. Also, we need to check conditions till square root only. So, we find square root of n and stored in variable root
  • Then, we run a loop from 3 to square root. Note that we have increased the loop by step 2. That’s because we do not need to check for even number. We already know that n is not even.
  • If at value of i, n is divisible, it means it is not prime. So, we set flag to false and break the loop
  • Finally, we return value of flag (Either true or false).

Thus, we went through Kotlin Program to check whether number is prime or not.

Leave a Reply