# 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 <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

# 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
```

Output:
`e^x = 2.718282`

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
2.5 Average Difficulty : 2.5/5.0
Based on 9 vote(s)