# Efficient program to calculate e^x

The value of Exponential Function e^x can be expressed using following Taylor Series.

`e^x = 1 + x/1! + x^2/2! + x^3/3! + ...... `

How to efficiently calculate the sum of above series?
The series can be re-written as

`e^x = 1 + (x/1) (1 + (x/2) (1 + (x/3) (........) ) ) `

Let the sum needs to be calculated for n terms, we can calculate sum using following loop.

```for (i = n - 1, sum = 1; i > 0; --i )
sum = 1 + x * sum / i; ```

Following is implementation of the above idea.

## C/C++

 `// C Efficient program to calculate ` `// e raise to the power x ` `#include ` ` `  `// Returns approximate value of e^x  ` `// using sum of first n terms of Taylor Series ` `float` `exponential(``int` `n, ``float` `x) ` `{ ` `    ``float` `sum = 1.0f; ``// initialize sum of series ` ` `  `    ``for` `(``int` `i = n - 1; i > 0; --i ) ` `        ``sum = 1 + x * sum / i; ` ` `  `    ``return` `sum; ` `} ` ` `  `// Driver program to test above function ` `int` `main() ` `{ ` `    ``int` `n = 10; ` `    ``float` `x = 1.0f; ` `    ``printf``(``"e^x = %f"``, exponential(n, x)); ` `    ``return` `0; ` `} `

## Java

 `// Java efficient program to calculate  ` `// e raise to the power x ` `import` `java.io.*; ` ` `  `class` `GFG  ` `{ ` `    ``// Function returns approximate value of e^x  ` `    ``// using sum of first n terms of Taylor Series ` `    ``static` `float` `exponential(``int` `n, ``float` `x) ` `    ``{ ` `        ``// initialize sum of series ` `        ``float` `sum = ``1``;  ` `  `  `        ``for` `(``int` `i = n - ``1``; i > ``0``; --i ) ` `            ``sum = ``1` `+ x * sum / i; ` `  `  `        ``return` `sum; ` `    ``} ` `     `  `    ``// driver program ` `    ``public` `static` `void` `main (String[] args)  ` `    ``{ ` `        ``int` `n = ``10``; ` `        ``float` `x = ``1``; ` `        ``System.out.println(``"e^x = "``+exponential(n,x)); ` `    ``} ` `} ` ` `  `// Contributed by Pramod Kumar `

## Python3

 `# Python program to calculate ` `# e raise to the power x ` ` `  `# Funtion to calculate value ` `# using sum of first n terms of  ` `# Taylor Series ` `def` `exponential(n, x): ` ` `  `    ``# initialize sum of series ` `    ``sum` `=` `1.0`  `    ``for` `i ``in` `range``(n, ``0``, ``-``1``): ` `        ``sum` `=` `1` `+` `x ``*` `sum` `/` `i ` `    ``print` `(``"e^x ="``, ``sum``) ` ` `  `# Driver program to test above function ` `n ``=` `10` `x ``=` `1.0` `exponential(n, x) ` ` `  `# This code is contributed by Danish Raza `

## C#

 `// C# efficient program to calculate  ` `// e raise to the power x ` `using` `System; ` ` `  `class` `GFG  ` `{ ` `    ``// Function returns approximate value of e^x  ` `    ``// using sum of first n terms of Taylor Series ` `    ``static` `float` `exponential(``int` `n, ``float` `x) ` `    ``{ ` `        ``// initialize sum of series ` `        ``float` `sum = 1;  ` ` `  `        ``for` `(``int` `i = n - 1; i > 0; --i ) ` `            ``sum = 1 + x * sum / i; ` ` `  `        ``return` `sum; ` `    ``} ` `     `  `    ``// driver program ` `    ``public` `static` `void` `Main ()  ` `    ``{ ` `        ``int` `n = 10; ` `        ``float` `x = 1; ` `        ``Console.Write(``"e^x = "` `+ exponential(n, x)); ` `    ``} ` `} ` ` `  `// This code is contributed by nitin mittal. `

## PHP

 ` 0; --``\$i` `) ` `        ``\$sum` `= 1 + ``\$x` `* ``\$sum` `/ ``\$i``; ` ` `  `    ``return` `\$sum``; ` `} ` ` `  `// Driver Code ` `\$n` `= 10; ` `\$x` `= 1.0; ` `echo``(``"e^x = "` `. exponential(``\$n``, ``\$x``)); ` ` `  `// This code is contributed by Ajit. ` `?> `

Output:

`e^x = 2.718282`

## tags:

Mathematical Mathematical