 Open in App
Not now

# Program to find sum of harmonic series

• Difficulty Level : Easy
• Last Updated : 27 Aug, 2022

Harmonic series is inverse of a arithmetic progression. In general, the terms in a harmonic progression can be denoted as 1/a, 1/(a + d), 1/(a + 2d), 1/(a + 3d) …. 1/(a + nd).
As Nth term of AP is given as ( a + (n – 1)d). Hence, Nth term of harmonic progression is reciprocal of Nth term of AP, which is 1/(a + (n – 1)d), where “a” is the 1st term of AP and “d” is a common difference.

Method #1: Simple approach

## C++

 `// C++ program to find sum of harmonic series ` `#include ` `using` `namespace` `std;` ` `  `// Function to return sum of harmonic series` `double` `sum(``int` `n)` `{` `  ``double` `i, s = 0.0;` `  ``for``(i = 1; i <= n; i++)` `      ``s = s + 1 / i;` `      `  `  ``return` `s;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `n = 5;` `    `  `    ``cout << ``"Sum is "` `<< sum(n);` `    ``return` `0;` `}`   `// This code is contributed by SHUBHAMSINGH10`

## C

 `// C program to find sum of harmonic series` `#include `   `// Function to return sum of harmonic series` `double` `sum(``int` `n)` `{` `  ``double` `i, s = 0.0;` `  ``for` `(i = 1; i <= n; i++)` `      ``s = s + 1/i;` `  ``return` `s;` `}`   `int` `main()` `{` `    ``int` `n = 5;` `    ``printf``(``"Sum is %f"``, sum(n));` `    ``return` `0;` `}`

## Java

 `// Java Program to find sum of harmonic series` `import` `java.io.*;`   `class` `GFG {` `    `  `    ``// Function to return sum of` `    ``// harmonic series` `    ``static` `double` `sum(``int` `n)` `    ``{` `      ``double` `i, s = ``0.0``;` `      ``for` `(i = ``1``; i <= n; i++)` `          ``s = s + ``1``/i;` `      ``return` `s;` `    ``}` ` `  `   `  `    ``// Driven Program` `    ``public` `static` `void` `main(String args[])` `    ``{` `        ``int` `n = ``5``;` `        ``System.out.printf(``"Sum is %f"``, sum(n));        ` `    ``}` `}`

## Python3

 `# Python program to find the sum of harmonic series`   `def` `sum``(n):` `    ``i ``=` `1` `    ``s ``=` `0.0` `    ``for` `i ``in` `range``(``1``, n``+``1``):` `        ``s ``=` `s ``+` `1``/``i;` `    ``return` `s;`   `# Driver Code ` `n ``=` `5` `print``(``"Sum is"``, ``round``(``sum``(n), ``6``))`

## C#

 `// C# Program to find sum of harmonic series` `using` `System;`   `class` `GFG {` `    `  `    ``// Function to return sum of` `    ``// harmonic series` `    ``static` `float` `sum(``int` `n)` `    ``{` `        ``double` `i, s = 0.0;` `        `  `        ``for` `(i = 1; i <= n; i++)` `            ``s = s + 1/i;` `            `  `        ``return` `(``float``)s;` `    ``}`   `    `  `    ``// Driven Program` `    ``public` `static` `void` `Main()` `    ``{` `        ``int` `n = 5;        ` `        ``Console.WriteLine(``"Sum is "` `                           ``+ sum(n));        ` `    ``}` `}`

## PHP

 ``

## Javascript

 ``

Output:

`Sum is 2.283333`

Time Complexity : O(n) ,as we are traversing once in array.

Auxiliary Space : O(1) ,no extra space needed.

Method #2: Using recursion

## C++

 `// CPP program to find sum of ` `// harmonic series using recursion ` `#include` `using` `namespace` `std;`   `float` `sum(``float` `n) ` `{ ` `    ``// Base condition ` `    ``if` `(n < 2) ` `        ``return` `1; `   `    ``else` `        ``return` `1 / n + (sum(n - 1)); ` `} `   `// Driven Code ` `int` `main() ` `{` `    ``cout << (sum(8)) << endl; ` `    ``cout << (sum(10)) << endl; ` `    ``return` `0;` `} `   `// This code is contributed by` `// Shashank_Sharma`

## Java

 `// Java program to find sum of ` `// harmonic series using recursion ` `import` `java.io.*; `   `class` `GFG ` `{ `   `float` `sum(``float` `n) ` `{ ` `    ``// Base condition ` `    ``if` `(n < ``2``) ` `        ``return` `1``; `   `    ``else` `        ``return` `1` `/ n + (sum(n - ``1``)); ` `} `   `// Driven Code ` `public` `static` `void` `main(String args[]) ` `{ ` `  ``GFG g = ``new` `GFG(); ` `  ``System.out.println(g.sum(``8``)); ` `  ``System.out.print(g.sum(``10``)); ` `} ` `} `   `// This code is contributed by Shivi_Aggarwal `

## Python3

 `# Python program to find sum of` `# harmonic series using recursion`   `def` `sum``(n):`   `    ``# Base condition` `    ``if` `n < ``2``:` `        ``return` `1`   `    ``else``:` `        ``return` `1` `/` `n ``+` `(``sum``(n ``-` `1``))` `        `  `print``(``sum``(``8``))` `print``(``sum``(``10``))`

## C#

 `//C# program to find sum of ` `// harmonic series using recursion ` `using` `System;`   `class` `GFG ` `{ `   `static` `float` `sum(``float` `n) ` `{ ` `    ``// Base condition ` `    ``if` `(n < 2) ` `        ``return` `1; `   `    ``else` `        ``return` `1 / n + (sum(n - 1)); ` `} `   `// Driven Code ` `public` `static` `void` `Main() ` `{ ` `    ``Console.WriteLine(sum(8)); ` `    ``Console.WriteLine(sum(10)); ` `} ` `} `   `// This code is contributed by shs..`

## PHP

 ``

## Javascript

 ``

Output:

```2.7178571428571425
2.9289682539682538```

Time Complexity : O(n), as we are recursing for n times.

Auxiliary Space : O(n), due to recursive stack space, since n extra space has been taken.

My Personal Notes arrow_drop_up
Related Articles