Given a quartic equation in the form , determine the absolute difference between the sum of its roots and the product of its roots. Note that roots need not be real – they can also be complex.

**Examples:**

Input: 4x^4 + 3x^3 + 2x^2 + x - 1 Output: 0.5 Input: x^4 + 4x^3 + 6x^2 + 4x + 1 Output: 5

**Approach:** Solving the quartic equation to obtain each individual root would be time-consuming and inefficient, and would require much effort and computational power. A more efficient solution utilises the following formulae:

The quartic always has sum of roots , and product of roots .

Hence by computing we find the absolute difference between sum and product of roots.

**Below is the implementation of above approach:**

## C++

`// C++ implementation of above approach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function taking coefficient of ` `// each term of equation as input ` `double` `sumProductDifference(` `int` `a, ` `int` `b, ` ` ` `int` `c, ` `int` `d,` ` ` `int` `e) ` `{ ` ` ` `// Finding sum of roots ` ` ` `double` `rootSum = (` `double` `)(-1 * b) / a; ` ` ` ` ` `// Finding product of roots ` ` ` `double` `rootProduct = (` `double` `) e / a; ` ` ` ` ` `// Absolute difference ` ` ` `return` `abs` `(rootSum - rootProduct); ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `cout << sumProductDifference(8, 4, 6, 4, 1);` ` ` ` ` `return` `0; ` `} ` ` ` `// This code is contributed ` `// by ANKITRAI1` |

## Java

`// Java implementation of above approach ` ` ` `public` `class` `GFG {` ` ` `// Function taking coefficient of` ` ` `// each term of equation as input` ` ` `static` `double` `sumProductDifference(` `int` `a, ` `int` `b, ` `int` `c, ` `int` `d, ` `int` `e) {` ` ` `// Finding sum of roots` ` ` `double` `rootSum = (` `double` `)(-` `1` `* b) / a;` ` ` ` ` `// Finding product of roots` ` ` `double` `rootProduct = (` `double` `) e / a;` ` ` ` ` `// Absolute difference` ` ` `return` `Math.abs(rootSum - rootProduct);` ` ` `}` ` ` ` ` `// Driver Code` ` ` `public` `static` `void` `main(String args[]) {` ` ` `System.out.println(sumProductDifference(` `8` `, ` `4` `, ` `6` `, ` `4` `, ` `1` `));` ` ` `}` `}` |

## Python3

`# Python implementation of above approach` ` ` `# Function taking coefficient of ` `# each term of equation as input` `def` `sumProductDifference(a, b, c, d, e):` ` ` ` ` `# Finding sum of roots` ` ` `rootSum ` `=` `(` `-` `1` `*` `b)` `/` `a ` ` ` ` ` `# Finding product of roots` ` ` `rootProduct ` `=` `e ` `/` `a ` ` ` ` ` `# Absolute difference` ` ` `return` `abs` `(rootSum` `-` `rootProduct) ` ` ` `print` `(sumProductDifference(` `8` `, ` `4` `, ` `6` `, ` `4` `, ` `1` `))` |

## C#

`// C# implementation of above approach ` `using` `System;` ` ` `class` `GFG` `{` `// Function taking coefficient of` `// each term of equation as input` `static` `double` `sumProductDifference(` `int` `a, ` `int` `b,` ` ` `int` `c, ` `int` `d, ` ` ` `int` `e) ` `{` ` ` `// Finding sum of roots` ` ` `double` `rootSum = (` `double` `)(-1 * b) / a;` ` ` ` ` `// Finding product of roots` ` ` `double` `rootProduct = (` `double` `) e / a;` ` ` ` ` `// Absolute difference` ` ` `return` `Math.Abs(rootSum - rootProduct);` `}` ` ` `// Driver Code` `public` `static` `void` `Main() ` `{` ` ` `Console.Write(sumProductDifference(8, 4, 6, 4, 1));` `}` `}` ` ` `// This code is contributed ` `// by ChitraNayal` |

## PHP

`<?php` `// PHP implementation of above approach ` ` ` `// Function taking coefficient of ` `// each term of equation as input ` `function` `sumProductDifference(` `$a` `, ` `$b` `, ` ` ` `$c` `, ` `$d` `,` `$e` `) ` `{ ` ` ` `// Finding sum of roots ` ` ` `$rootSum` `= (double)(-1 * ` `$b` `) / ` `$a` `; ` ` ` ` ` `// Finding product of roots ` ` ` `$rootProduct` `= (double) ` `$e` `/ ` `$a` `; ` ` ` ` ` `// Absolute difference ` ` ` `return` `abs` `(` `$rootSum` `- ` `$rootProduct` `); ` `} ` ` ` `// Driver code ` `echo` `sumProductDifference(8, 4, 6, 4, 1);` ` ` `// This code is contributed ` `// by Shivi_Aggarwal` `?>` |

**Output:**

0.625

**Explanation:** The input equation is .

By finding , we get ,

which is , or .

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.