Find the ln(X) and log10X with the help of expansion

11 May, 2021
Given a positive number x, the task is to find the natural log (ln) and log to the base 10 (log10) of this number with the help of expansion.
Example:  
Input: x = 5
Output: ln 5.000 = 1.609
        log10 5.000 = 0.699

Input: x = 10
Output: ln 10.000 = 2.303
        log10 10.000 = 1.000
Approach:  
The expansion of natural logarithm of x (ln x) is: 
Therefore this series can be summed up as:  
Hence a function can be made to evaluate the nth term of the sequence for 1 ≤ x ≤ n 
Now to calculate log10 x, below formula can be used:  
Below is the implementation of the above approach: 
C++
Java
Python3
C#
Javascript
// CPP code to Find the ln x and// log<sub>10</sub> x with the help of expansion #include <cmath>#include <iomanip>#include <iostream> using namespace std; // Function to calculate ln x using expansiondouble calculateLnx(double n){     double num, mul, cal, sum = 0;    num = (n - 1) / (n + 1);     // terminating value of the loop    // can be increased to improve the precision    for (int i = 1; i <= 1000; i++) {        mul = (2 * i) - 1;        cal = pow(num, mul);        cal = cal / mul;        sum = sum + cal;    }    sum = 2 * sum;    return sum;} // Function to calculate log10 xdouble calculateLogx(double lnx){    return (lnx / 2.303);} // Driver Codeint main(){     double lnx, logx, n = 5;    lnx = calculateLnx(n);    logx = calculateLogx(lnx);     // setprecision(3) is used to display    // the output up to 3 decimal places     cout << fixed << setprecision(3)         << "ln " << n << " = "         << lnx << endl;    cout << fixed << setprecision(3)         << "log10 " << n << " = "         << logx << endl;}
// Java code to Find the ln x and// log<sub>10</sub> x with the help of expansionimport java.io.*; class GFG{     // Function to calculate ln x using expansionstatic double calculateLnx(double n){    double num, mul, cal, sum = 0;    num = (n - 1) / (n + 1);     // terminating value of the loop    // can be increased to improve the precision    for (int i = 1; i <= 1000; i++)    {        mul = (2 * i) - 1;        cal = Math.pow(num, mul);        cal = cal / mul;        sum = sum + cal;    }    sum = 2 * sum;    return sum;} // Function to calculate log10 xstatic double calculateLogx(double lnx){    return (lnx / 2.303);} // Driver Codepublic static void main (String[] args){    double lnx, logx, n = 5;    lnx = calculateLnx(n);    logx = calculateLogx(lnx);         // setprecision(3) is used to display    // the output up to 3 decimal places         System.out.println ("ln " + n + " = " + lnx );    System.out.println ("log10 " + n + " = "+ logx );}} // This code is contributed by ajit
# Python 3 code to Find the ln x and# log<sub>10</sub> x with the help of expansion# Function to calculate ln x using expansionfrom math import powdef calculateLnx(n):    sum = 0    num = (n - 1) / (n + 1)     # terminating value of the loop    # can be increased to improve the precision    for i in range(1, 1001, 1):        mul = (2 * i) - 1        cal = pow(num, mul)        cal = cal / mul        sum = sum + cal     sum = 2 * sum    return sum # Function to calculate log10 xdef calculateLogx(lnx):    return (lnx / 2.303) # Driver Codeif __name__ == '__main__':    n = 5    lnx = calculateLnx(n)    logx = calculateLogx(lnx)     # setprecision(3) is used to display    # the output up to 3 decimal places     print("ln", "{0:.3f}".format(n),           "=", "{0:.3f}".format(lnx))    print("log10", "{0:.3f}".format(n),              "=", "{0:.3f}".format(logx))     # This code is contributed by# Surendra_Gangwar
// C# code to Find the ln x and// log<sub>10</sub> x with the help of expansionusing System;     class GFG{     // Function to calculate ln x using expansionstatic double calculateLnx(double n){    double num, mul, cal, sum = 0;    num = (n - 1) / (n + 1);     // terminating value of the loop    // can be increased to improve the precision    for (int i = 1; i <= 1000; i++)    {        mul = (2 * i) - 1;        cal = Math.Pow(num, mul);        cal = cal / mul;        sum = sum + cal;    }    sum = 2 * sum;    return sum;} // Function to calculate log10 xstatic double calculateLogx(double lnx){    return (lnx / 2.303);} // Driver Codepublic static void Main (String[] args){    double lnx, logx, n = 5;    lnx = calculateLnx(n);    logx = calculateLogx(lnx);         // setprecision(3) is used to display    // the output up to 3 decimal places         Console.WriteLine("ln " + n + " = " + lnx );    Console.WriteLine("log10 " + n + " = "+ logx );}} // This code is contributed by Princi Singh
<script> // Javascript code to Find the ln x and// log<sub>10</sub> x with the help of expansion // Function to calculate ln x using expansionfunction calculateLnx(n){    let num, mul, cal, sum = 0;    num = (n - 1) / (n + 1);     // Terminating value of the loop    // can be increased to improve the precision    for(let i = 1; i <= 1000; i++)    {        mul = (2 * i) - 1;        cal = Math.pow(num, mul);        cal = cal / mul;        sum = sum + cal;    }    sum = 2 * sum;    return sum;} // Function to calculate log10 xfunction calculateLogx(lnx){    return (lnx / 2.303);} // Driver Codelet lnx, logx, n = 5;lnx = calculateLnx(n);logx = calculateLogx(lnx); // setprecision(3) is used to display// the output up to 3 decimal placesdocument.write("ln " + n + " = " + lnx + "<br>");document.write("log10 " + n + " = "+ logx + "<br>"); // This code is contributed by souravmahato348 </script>
ln 5.000 = 1.609
log10 5.000 = 0.699
 
SURENDRA_GANGWAR
jit_t
princi singh
souravmahato348
series
Mathematical
Mathematical
series
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.