# Program for Derivative of a Polynomial

Last Updated : 18 Sep, 2023

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)

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 anx^(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)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)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)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

Time Complexity: O(n), where n is the number of terms in the polynomial.
Auxiliary Space: O(1)

Previous
Next