Program To Find The Roots Of Quadratic equation

Share Your Love

Given a quadratic equation in the form ax2 + bx + c, find roots of it. 

quadratic equation
Quadratic Equation

Examples Of Quadratic Equation:

Input  :  a = 1, b = -2, c = 1
Output :  Roots are real and same
          1

Input  :  a = 1, b = 7, c = 12
Output :  Roots are real and different
          -3, -4

Input  :  a = 1, b = 1, c = 1
Output :  Roots are complex 
          -0.5 + i1.73205
          -0.5 - i1.73205

Below is direct formula for finding roots of quadratic equation.

x = \frac{ -b \pm \sqrt{b^2 - 4ac}}{2a} when ax^2 + bx + c = 0
Quadratic Equation

Here we discuss about following cases:

If b*b < 4*a*c, then roots are complex
(not real).
For example roots of x2 + x + 1, roots are
-0.5 + i1.73205 and -0.5 - i1.73205

If b*b == 4*a*c, then roots are real 
and both roots are same.
For example, roots of x2 - 2x + 1 are 1 and 1

If b*b > 4*a*c, then roots are real 
and different.
For example, roots of x2 - 7x - 12 are 3 and 4

Here implementation of above formula:

Quadratic Equation To Find Roots Through C Program

/* C program to find roots of a quadratic equation */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

// Prints roots of quadratic equation ax*2 + bx + x
void findRoots(int a, int b, int c)
{
	// If a is 0, then equation is not quadratic, but
	// linear
	if (a == 0) {
		printf("Invalid");
		return;
	}

	int d = b * b - 4 * a * c;
	double sqrt_val = sqrt(abs(d));

	if (d > 0) {
		printf("Roots are real and different \n");
		printf("%f\n%f", (double)(-b + sqrt_val) / (2 * a),
			(double)(-b - sqrt_val) / (2 * a));
	}
	else if (d == 0) {
		printf("Roots are real and same \n");
		printf("%f", -(double)b / (2 * a));
	}
	else // d < 0
	{
		printf("Roots are complex \n");
		printf("%f + i%f\n%f - i%f", -(double)b / (2 * a),
			sqrt_val, -(double)b / (2 * a), sqrt_val);
	}
}

// Driver code
int main()
{
	int a = 1, b = -7, c = 12;

	// Function call
	findRoots(a, b, c);
	return 0;
}

Quadratic Equation To Find Roots Through C++ Program

/* C++ program to find roots of a quadratic equation */
#include <bits/stdc++.h>
using namespace std;

// Prints roots of quadratic equation ax*2 + bx + x
void findRoots(int a, int b, int c)
{
	// If a is 0, then equation is not quadratic, but
	// linear
	if (a == 0) {
		cout << "Invalid";
		return;
	}

	int d = b * b - 4 * a * c;
	double sqrt_val = sqrt(abs(d));

	if (d > 0) {
		cout << "Roots are real and different \n";
		cout << (double)(-b + sqrt_val) / (2 * a) << "\n"
			<< (double)(-b - sqrt_val) / (2 * a);
	}
	else if (d == 0) {
		cout << "Roots are real and same \n";
		cout << -(double)b / (2 * a);
	}
	else // d < 0
	{
		cout << "Roots are complex \n";
		cout << -(double)b / (2 * a) << " + i" << sqrt_val
			<< "\n"
			<< -(double)b / (2 * a) << " - i" << sqrt_val;
	}
}

// Driver code
int main()
{
	int a = 1, b = -7, c = 12;

	// Function call
	findRoots(a, b, c);
	return 0;
}

Quadratic Equation To Find Roots Through Java Program

// Java program to find roots
// of a quadratic equation

import java.io.*;
import static java.lang.Math.*;
class Quadratic {

	// Prints roots of quadratic
	// equation ax * 2 + bx + x
	static void findRoots(int a, int b, int c)
	{
		// If a is 0, then equation is not
		// quadratic, but linear

		if (a == 0) {
			System.out.println("Invalid");
			return;
		}

		int d = b * b - 4 * a * c;
		double sqrt_val = sqrt(abs(d));

		if (d > 0) {
			System.out.println(
				"Roots are real and different \n");

			System.out.println(
				(double)(-b + sqrt_val) / (2 * a) + "\n"
				+ (double)(-b - sqrt_val) / (2 * a));
		}
		else if (d == 0) {
			System.out.println(
				"Roots are real and same \n");

			System.out.println(-(double)b / (2 * a) + "\n"
							+ -(double)b / (2 * a));
		}
		else // d < 0
		{
			System.out.println("Roots are complex \n");

			System.out.println(-(double)b / (2 * a) + " + i"
							+ sqrt_val + "\n"
							+ -(double)b / (2 * a)
							+ " - i" + sqrt_val);
		}
	}

	// Driver code
	public static void main(String args[])
	{

		int a = 1, b = -7, c = 12;
	
		// Function call
		findRoots(a, b, c);
	}
}

// This code is contributed by Sumit Kumar.

Python program to find roots of a Quadratic Equation:

# Python program to find roots
# of a quadratic equation
import math

# Prints roots of quadratic equation
# ax*2 + bx + x


def findRoots(a, b, c):

	# If a is 0, then equation is
	# not quadratic, but linear
	if a == 0:
		print("Invalid")
		return -1
	d = b * b - 4 * a * c
	sqrt_val = math.sqrt(abs(d))

	if d > 0:
		print("Roots are real and different ")
		print((-b + sqrt_val)/(2 * a))
		print((-b - sqrt_val)/(2 * a))
	elif d == 0:
		print("Roots are real and same")
		print(-b / (2*a))
	else: # d<0
		print("Roots are complex")
		print(- b / (2*a), " + i", sqrt_val)
		print(- b / (2*a), " - i", sqrt_val)


# Driver Program
a = 1
b = -7
c = 12

# Function call
findRoots(a, b, c)

# This code is contributed by Sharad Bhardwaj.

C# program to find roots of a quadratic equation:

// C# program to find roots
// of a quadratic equation
using System;

class Quadratic {

	// Prints roots of quadratic
	// equation ax * 2 + bx + x
	void findRoots(int a, int b, int c)
	{

		// If a is 0, then equation is
		// not quadratic, but linear

		if (a == 0) {
			Console.Write("Invalid");
			return;
		}

		int d = b * b - 4 * a * c;
		double sqrt_val = Math.Abs(d);

		if (d > 0) {
			Console.Write(
				"Roots are real and different \n");

			Console.Write(
				(double)(-b + sqrt_val) / (2 * a) + "\n"
				+ (double)(-b - sqrt_val) / (2 * a));
		}

		// d < 0
		else {
			Console.Write("Roots are complex \n");

			Console.Write(-(double)b / (2 * a) + " + i"
						+ sqrt_val + "\n"
						+ -(double)b / (2 * a) + " - i"
						+ sqrt_val);
		}
	}

	// Driver code
	public static void Main()
	{
		Quadratic obj = new Quadratic();
		int a = 1, b = -7, c = 12;
	
		// Function call
		obj.findRoots(a, b, c);
	}
}

// This code is contributed by nitin mittal.

PHP program to find roots of a quadratic equation:

<?php
// PHP program to find roots
// of a quadratic equation

// Prints roots of quadratic
// equation ax*2 + bx + x
function findRoots($a, $b, $c)
{
	// If a is 0, then equation is
	// not quadratic, but linear
	if ($a == 0)
	{
		echo "Invalid";
		return;
	}

	$d = $b * $b - 4 * $a * $c;
	$sqrt_val = sqrt(abs($d));

	if ($d > 0)
	{
		echo "Roots are real and ".
					"different \n";
		echo (-$b + $sqrt_val) / (2 * $a) , "\n",
			(-$b - $sqrt_val) / (2 * $a);
	}
	else if ($d == 0)
	{
		echo "Roots are real and same \n";
		echo -$b / (2 * $a);
	}
	
	// d < 0
	else
	{
		echo "Roots are complex \n";
		echo -$b / (2 * $a) , " + i" ,
			$sqrt_val, "\n" , -$b / (2 * $a),
							" - i", $sqrt_val;
	}
}

// Driver code
$a = 1; $b = -7 ;$c = 12;

// Function call
findRoots($a, $b, $c);

// This code is contributed
// by nitin mittal.
?>

Output:

Roots are real and different 
4.000000
3.000000

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above through Whatsapp.

Share Your Love
Avatar photo
Lingaraj Senapati

Hey There! I am Lingaraj Senapati, the Founder of lingarajtechhub.com My skills are Freelance, Web Developer & Designer, Corporate Trainer, Digital Marketer & Youtuber.

Articles: 429

Newsletter Updates

Enter your email address below to subscribe to our newsletter