Program to find the Nth Harmonic Number
Given a number N. The task is to find the Nth Harmonic Number.
Let the nth harmonic number be Hn.
The harmonic series is as follows:
H1 = 1
H2 = H1 + 1/2
H3 = H2 + 1/3
H4 = H3 + 1/4
.
.
.
Hn = Hn-1 + 1/n
Examples:
Input : N = 5 Output : 2.45 Input : N = 9 Output : 2.71786
The idea is to traverse from H1 and then consecutively keep finding H2 from H1, H3 from H2 ….. and so on.
Below is the program to find N-th Harmonic Number:
C++
// CPP program to find N-th Harmonic Number #include <iostream> using namespace std; // Function to find N-th Harmonic Number double nthHarmonic( int N) { // H1 = 1 float harmonic = 1.00; // loop to apply the formula // Hn = H1 + H2 + H3 ... + Hn-1 + Hn-1 + 1/n for ( int i = 2; i <= N; i++) { harmonic += ( float )1 / i; } return harmonic; } // Driver Code int main() { int N = 8; cout<<nthHarmonic(N); return 0; } |
Java
// Java program to find N-th Harmonic Number import java.io.*; class GFG { // Function to find N-th Harmonic Number static double nthHarmonic( int N) { // H1 = 1 float harmonic = 1 ; // loop to apply the formula // Hn = H1 + H2 + H3 ... + Hn-1 + Hn-1 + 1/n for ( int i = 2 ; i <= N; i++) { harmonic += ( float ) 1 / i; } return harmonic; } // Driver Code public static void main (String[] args) { int N = 8 ; System.out.print(nthHarmonic(N)); } } // This code is contributed // by ajit |
Python 3
# Python3 program to find # N-th Harmonic Number # Function to find N-th Harmonic Number def nthHarmonic(N) : # H1 = 1 harmonic = 1.00 # loop to apply the formula # Hn = H1 + H2 + H3 ... + # Hn-1 + Hn-1 + 1/n for i in range ( 2 , N + 1 ) : harmonic + = 1 / i return harmonic # Driver code if __name__ = = "__main__" : N = 8 print ( round (nthHarmonic(N), 5 )) # This code is contributed by ANKITRAI1 |
C#
// C# program to find N-th Harmonic Number using System; class GFG { // Function to find N-th Harmonic Number static double nthHarmonic( int N) { // H1 = 1 float harmonic = 1; // loop to apply the formula // Hn = H1 + H2 + H3 ... + // Hn-1 + Hn-1 + 1/n for ( int i = 2; i <= N; i++) { harmonic += ( float )1 / i; } return harmonic; } // Driver Code static public void Main () { int N = 8; Console.Write(nthHarmonic(N)); } } // This code is contributed // by Raj |
PHP
<?php // PHP program to find // N-th Harmonic Number // Function to find N-th // Harmonic Number function nthHarmonic( $N ) { // H1 = 1 $harmonic = 1.00; // loop to apply the formula // Hn = H1 + H2 + H3 ... + // Hn-1 + Hn-1 + 1/n for ( $i = 2; $i <= $N ; $i ++) { $harmonic += (float)1 / $i ; } return $harmonic ; } // Driver Code $N = 8; echo nthHarmonic( $N ); // This code is contributed // by Shivi_Aggarwal ?> |
Javascript
<script> // Javascript program to find // N-th Harmonic Number // Function to find N-th // Harmonic Number function nthHarmonic(N) { // H1 = 1 let harmonic = 1.00; // loop to apply the formula // Hn = H1 + H2 + H3 ... + // Hn-1 + Hn-1 + 1/n for (let i = 2; i <= N; i++) { harmonic += parseFloat(1) / i; } return harmonic; } // Driver Code let N = 8; document.write( nthHarmonic(N).toFixed(5)); // This code is contributed by bobby </script> |
Output:
2.71786
Time Complexity: O(N)
Auxiliary Space: O(1) as using constant space, since no extra space has been taken.
Please Login to comment...