In this post, we will go through Kotlin program to find roots of quadratic equation

## What is a quadratic equation?

In algebra, a quadratic equation is any equation that can be expressed in standard form as

ax^{2}+ bx + c = 0Where, a, b and c are real numbers and a is not 0.

x is variable (Either real or complex value) for which this equation is satisfied.We can find roots of equation (value of x that satisfy equation) using formula –

x = (-b ± √b

^{2}-4ac) / 2aIt means,

First root is

x = (-b + √b^{2}-4ac) / 2aand,

Second root is

x = (-b – √b^{2}-4ac) / 2aHere, b

^{2}– 4ac is called determinant that decides whether roots are real or imaginary (or complex). If

- determinant > 0: Roots are real and different
- determinant == 0: Roots are real and same
- determinant < 0: Roots are imaginary (or, complex) and different

## 1. Kotlin Program to Find Roots of Quadratic Equation

Now, let’s see program in Kotlin that finds roots of the quadratic equation.

import java.util.* import kotlin.math.sqrt fun main() { val read = Scanner(System.`in`) println("To form quadratic equation a * x * x + b * x + c = 0") println("Enter a:") val a = read.nextDouble() println("Enter b:") val b = read.nextDouble() println("Enter c:") val c = read.nextDouble() val d: Double = (b * b) - (4 * a * c) // This is determinant that decides whether roots are real or imaginary when { (d > 0) -> { val firstRoot = (-b + sqrt(d)) / ( 2 * a) val secondRoot = (-b - sqrt(d)) / ( 2 * a) val output = "Roots of equation a * x * x + b * x + c = 0 => x = %.2f and x = %.2f" .format(firstRoot, secondRoot) println(output) } (d == 0.0) -> { val firstRoot = -b / ( 2 * a) val output = "Roots of equation a * x * x + b * x + c = 0 => x = %.2f and x = %.2f" .format(firstRoot, firstRoot) println(output) } else -> { val realPart = -b / ( 2 * a) val imaginaryPart = sqrt(-d) / (2 * a) val output = "Roots of equation a * x * x + b * x + c = 0 => x = (%.2f + %.2fi) and x = (%.2f - %.2fi)" .format(realPart, imaginaryPart, realPart, imaginaryPart) println(output) } } }

When you run the program, output will be

To form quadratic equation a * x * x + b * x + c = 0 Enter a: 1 Enter b: 0 Enter c: -1 Roots of equation a * x * x + b * x + c = 0 => x = 1.00 and x = -1.00

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.nextDouble()** means read anything (i.e. Double value) entered by user before space or line break from standard input – Keyboard.

Input read by scanner is then stored in variable **year**

At first, we are taking value of **a**, **b**, and **c** from user to form quadratic equation.

Then, we find value of determinant and store it in variable **d**

Then, as per value of determinant we find the roots of equation.

In all process we are keeping in mind the formula to find roots of equation.

x = (-b ± √b^{2} -4ac) / 2a

Finally, we print result value using **println()** method.

Thus, we went through Kotlin Program to Find Roots of Quadratic Equation.