# Program for Derivative of a Polynomial

• Difficulty Level : Medium
• Last Updated : 25 Jun, 2021

Given a polynomial as a string and a value. Evaluate polynomial’s derivative for the given value.
Note: The input format is such that there is a white space between a term and the ‘+’ symbol

The derivative of p(x) = ax^n is p'(x) = a*n*x^(n-1)
Also, if p(x) = p1(x) + p2(x)
Here p1 and p2 are polynomials too
p'(x) = p1′(x) + p2′(x)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

```Input : 3x^3 + 4x^2 + 6x^1 + 89x^0
2
Output :58
Explanation : Derivative of given
polynomial is : 9x^2 + 8x^1 + 6
Now put x = 2
9*4 + 8*2 + 6 = 36 + 16 + 6 = 58

Input : 1x^3
3
Output : 27```

We split the input string into tokens and for each term calculate the derivative separately for each term and add them to get the result.

## C++

 `// C++ program to find value of derivative of``// a polynomial.``#include ``using` `namespace` `std;` `long` `long` `derivativeTerm(string pTerm, ``long` `long` `val)``{``    ``// Get coefficient``    ``string coeffStr = ``""``;``    ``int` `i;``    ``for` `(i = 0; pTerm[i] != ``'x'``; i++)``        ``coeffStr.push_back(pTerm[i]);``    ``long` `long` `coeff = ``atol``(coeffStr.c_str());` `    ``// Get Power (Skip 2 characters for x and ^)``    ``string powStr = ``""``;``    ``for` `(i = i + 2; i != pTerm.size(); i++)``        ``powStr.push_back(pTerm[i]);``    ``long` `long` `power = ``atol``(powStr.c_str());` `    ``// For ax^n, we return a(n-1)x^(n-1)``    ``return` `coeff * power * ``pow``(val, power - 1);``}` `long` `long` `derivativeVal(string& poly, ``int` `val)``{``    ``long` `long` `ans = 0;` `    ``// We use istringstream to get input in tokens``    ``istringstream is(poly);` `    ``string pTerm;``    ``while` `(is >> pTerm) {` `        ``// If the token is equal to '+' then``        ``// continue with the string``        ``if` `(pTerm == ``"+"``)``            ``continue``;``      `  `        ``// Otherwise find the derivative of that``        ``// particular term``        ``else``            ``ans = (ans + derivativeTerm(pTerm, val));``    ``}``    ``return` `ans;``}` `// Driver code``int` `main()``{``    ``string str = ``"4x^3 + 3x^1 + 2x^2"``;``    ``int` `val = 2;``    ``cout << derivativeVal(str, val);``    ``return` `0;``}`

## Java

 `// Java program to find value of derivative of``// a polynomial``import` `java.io.*;``class` `GFG``{` `  ``static` `long` `derivativeTerm(String pTerm, ``long` `val)``  ``{` `    ``// Get coefficient``    ``String coeffStr = ``""``;``    ``int` `i;``    ``for` `(i = ``0``; pTerm.charAt(i) != ``'x'` `; i++)``    ``{``      ``if``(pTerm.charAt(i)==``' '``)``        ``continue``;``      ``coeffStr += (pTerm.charAt(i));``    ``}` `    ``long` `coeff = Long.parseLong(coeffStr);` `    ``// Get Power (Skip 2 characters for x and ^)``    ``String powStr = ``""``; ``    ``for` `(i = i + ``2``; i != pTerm.length() && pTerm.charAt(i) != ``' '``; i++)``    ``{``      ``powStr += pTerm.charAt(i);``    ``}` `    ``long` `power=Long.parseLong(powStr);` `    ``// For ax^n, we return a(n-1)x^(n-1)``    ``return` `coeff * power * (``long``)Math.pow(val, power - ``1``);``  ``}``  ``static` `long` `derivativeVal(String poly, ``int` `val)``  ``{``    ``long` `ans = ``0``;` `    ``int` `i = ``0``;``    ``String[] stSplit = poly.split(``"\\+"``);``    ``while``(i

## Python3

 `# Python3 program to find``# value of derivative of``# a polynomial.``def` `derivativeTerm(pTerm, val):` `    ``# Get coefficient``    ``coeffStr ``=` `""` `    ``i ``=` `0``    ``while` `(i < ``len``(pTerm) ``and``           ``pTerm[i] !``=` `'x'``):``        ``coeffStr ``+``=` `(pTerm[i])``        ``i ``+``=` `1``        ` `    ``coeff ``=` `int``(coeffStr)` `    ``# Get Power (Skip 2 characters``    ``# for x and ^)``    ``powStr ``=` `""``    ``j ``=` `i ``+` `2``    ``while` `j < ``len``(pTerm):``        ``powStr ``+``=` `(pTerm[j])``        ``j ``+``=` `1``   ` `    ``power ``=` `int``(powStr)` `    ``# For ax^n, we return``    ``# a(n-1)x^(n-1)``    ``return` `(coeff ``*` `power ``*``            ``pow``(val, power ``-` `1``))` `def` `derivativeVal(poly, val):` `    ``ans ``=` `0``    ``i ``=` `0``    ``stSplit ``=` `poly.split(``"+"``)``   ` `    ``while` `(i < ``len``(stSplit)):     ``        ``ans ``=` `(ans ``+``               ``derivativeTerm(stSplit[i],``                              ``val))``        ``i ``+``=` `1` `    ``return` `ans` `# Driver code``if` `__name__ ``=``=` `"__main__"``:` `    ``st ``=` `"4x^3 + 3x^1 + 2x^2"``    ``val ``=` `2`   `    ``print``(derivativeVal(st, val))` `# This code is contributed by Chitranayal`

## C#

 `// C# program to find value of derivative of``// a polynomial``using` `System;` `class` `GFG{` `static` `long` `derivativeTerm(``string` `pTerm, ``long` `val)``{` `    ``// Get coefficient``    ``string` `coeffStr = ``""``;``    ``int` `i;``    ` `    ``for``(i = 0; pTerm[i] != ``'x'``; i++)``    ``{``        ``if` `(pTerm[i] == ``' '``)``            ``continue``;``            ` `        ``coeffStr += (pTerm[i]);``    ``}``    ` `    ``long` `coeff = ``long``.Parse(coeffStr);``    ` `    ``// Get Power (Skip 2 characters for x and ^)``    ``string` `powStr = ``""``; ``    ``for``(i = i + 2;``        ``i != pTerm.Length && pTerm[i] != ``' '``;``        ``i++)``    ``{``        ``powStr += pTerm[i];``    ``}``    ` `    ``long` `power = ``long``.Parse(powStr);``    ` `    ``// For ax^n, we return a(n-1)x^(n-1)``    ``return` `coeff * power * (``long``)Math.Pow(val, power - 1);``}` `static` `long` `derivativeVal(``string` `poly, ``int` `val)``{``    ``long` `ans = 0;``    ` `    ``int` `i = 0;``    ``String[] stSplit = poly.Split(``"+"``);``    ` `    ``while` `(i < stSplit.Length)``    ``{``        ``ans = (ans +derivativeTerm(stSplit[i], val));``        ``i++;``    ``}``    ``return` `ans;``}` `// Driver code``static` `public` `void` `Main()``{``    ``String str = ``"4x^3 + 3x^1 + 2x^2"``;``    ``int` `val = 2;``    ` `    ``Console.WriteLine(derivativeVal(str, val));``}``}` `// This code is contributed by rag2127`

## Javascript

 ``

Output:

`59`

This article is contributed by Ankit Jain . If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.