# 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++ Efficient program to calculate ` `// e raise to the power x ` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// 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 code ` `int` `main() ` `{ ` ` ` `int` `n = 10; ` ` ` `float` `x = 1.0f; ` ` ` `cout << ` `"e^x = "` `<< fixed << setprecision(5) << exponential(n, x); ` ` ` `return` `0; ` `} ` `// This code is contributed by rathbhupendra` |

## C

`// C Efficient program to calculate` `// e raise to the power x` `#include <stdio.h>` `// 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` `# Function 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

`<?php` `// PHP Efficient program to calculate` `// e raise to the power x` `// Returns approximate value of e^x ` `// using sum of first n terms ` `// of Taylor Series` `function` `exponential(` `$n` `, ` `$x` `)` `{` ` ` `// initialize sum of series` ` ` `$sum` `= 1.0; ` ` ` `for` `(` `$i` `= ` `$n` `- 1; ` `$i` `> 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.` `?>` |

## Javascript

`<script>` `// javascript efficient program to calculate ` `// e raise to the power x` ` ` `// Function returns approximate value of e^x` ` ` `// using sum of first n terms of Taylor Series` ` ` `function` `exponential(n , x) {` ` ` `// initialize sum of series` ` ` `var` `sum = 1;` ` ` `for` `(i = n - 1; i > 0; --i)` ` ` `sum = 1 + x * sum / i;` ` ` `return` `sum;` ` ` `}` ` ` `// driver program` ` ` ` ` `var` `n = 10;` ` ` `var` `x = 1;` ` ` `document.write(` `"e^x = "` `+ exponential(n, x).toFixed(6));` `// This code contributed by Rajput-Ji ` `</script>` |

**Output: **

e^x = 2.718282

**Time Complexity: **O(n)

**Auxiliary Space: **O(1), since no extra space has been taken.

This article is compiled by **Rahul **and reviewed by GeeksforGeeks team. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above