# Iterated Logarithm log*(n)

Iterated Logarithm or Log*(n) is the number of times the logarithm function must be iteratively applied before the result is less than or equal to 1. Applications: It is used in analysis of algorithms (Refer Wiki for details)

## C++

 `// Recursive CPP program to find value of ` `// Iterated Logarithm ` `#include ` `using` `namespace` `std; ` ` `  `int` `_log(``double` `x, ``double` `base) ` `{ ` `    ``return` `(``int``)(``log``(x) / ``log``(base)); ` `} ` ` `  `double` `recursiveLogStar(``double` `n, ``double` `b) ` `{ ` `    ``if` `(n > 1.0) ` `        ``return` `1.0 + recursiveLogStar(_log(n, b), b); ` `    ``else` `        ``return` `0; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 100, base = 5; ` `    ``cout << ``"Log*("` `<< n << ``") = "`  `         ``<< recursiveLogStar(n, base) << ````" "````; ` `    ``return` `0; ` `} `

## Java

 `// Recursive Java program to  ` `// find value of Iterated Logarithm ` `import` `java.io.*; ` ` `  `class` `GFG ` `{ ` `static` `int` `_log(``double` `x,  ` `                ``double` `base) ` `{ ` `    ``return` `(``int``)(Math.log(x) /  ` `                 ``Math.log(base)); ` `} ` ` `  `static` `double` `recursiveLogStar(``double` `n,  ` `                               ``double` `b) ` `{ ` `    ``if` `(n > ``1.0``) ` `        ``return` `1.0` `+  ` `               ``recursiveLogStar(_log(n,  ` `                                 ``b), b); ` `    ``else` `        ``return` `0``; ` `} ` ` `  `// Driver code ` `public` `static` `void` `main (String[] args)  ` `{ ` `    ``int` `n = ``100``, base = ``5``; ` `    ``System.out.println(``"Log*("` `+ n + ``") = "` `+ ` `                  ``recursiveLogStar(n, base)); ` `} ` `} ` ` `  `// This code is contributed by jit_t `

## Python3

 `# Recursive Python3 program to find value of ` `# Iterated Logarithm ` `import` `math ` ` `  `def` `_log(x, base): ` ` `  `    ``return` `(``int``)(math.log(x) ``/` `math.log(base)) ` ` `  `def` `recursiveLogStar(n, b): ` ` `  `    ``if``(n > ``1.0``): ` `        ``return` `1.0` `+` `recursiveLogStar(_log(n, b), b) ` `    ``else``: ` `        ``return` `0` ` `  ` `  `# Driver code ` `if` `__name__``=``=``'__main__'``: ` `    ``n ``=` `100` `    ``base ``=` `5` `    ``print``(``"Log*("``, n, ``") = "``, recursiveLogStar(n, base)) ` ` `  `# This code is contributed by ` `# Sanjit_Prasad `

## C#

 `// Recursive C# program to  ` `// find value of Iterated Logarithm ` ` `  `using` `System; ` ` `  `public` `class` `GFG{ ` `static` `int` `_log(``double` `x, ``double` `baset) ` `{ ` `    ``return` `(``int``)(Math.Log(x) /  ` `                ``Math.Log(baset)); ` `} ` ` `  `static` `double` `recursiveLogStar(``double` `n,  ` `                            ``double` `b) ` `{ ` `    ``if` `(n > 1.0) ` `        ``return` `1.0 +  ` `            ``recursiveLogStar(_log(n,  ` `                                ``b), b); ` `    ``else` `        ``return` `0; ` `} ` ` `  `// Driver code ` `    ``static` `public` `void` `Main (){ ` `     `  `    ``int` `n = 100, baset = 5; ` `    ``Console.WriteLine(``"Log*("` `+ n + ``") = "` `+ ` `                ``recursiveLogStar(n, baset)); ` `} ` `} ` ` `  `// This code is contributed by ajit. `

/div>

## PHP

 ` 1.0) ` `        ``return` `1.0 +  ` `               ``recursiveLogStar(_log(``\$n``,  ` `                               ``\$b``), ``\$b``); ` `    ``else` `        ``return` `0; ` `} ` ` `  `// Driver code ` `\$n` `= 100; ``\$base` `= 5; ` `echo` `"Log*("` `, ``\$n` `, ``")"``,``" = "``, ` `recursiveLogStar(``\$n``, ``\$base``), ````" "````; ` ` `  `// This code is contributed by ajit ` `?> `

Output :

```Log*(100) = 2
```

Iterative Implementation :

## C++

 `// Iterative CPP function to find value of ` `// Iterated Logarithm ` `int` `iterativeLogStar(``double` `n, ``double` `b) ` `{ ` `    ``int` `count = 0; ` `    ``while` `(n >= 1) { ` `        ``n = _log(n, b); ` `        ``count++; ` `    ``} ` `    ``return` `count; ` `} `

## Python3

 `# Iterative Python function to find value of ` `# Iterated Logarithm ` ` `  ` `  `def` `iterativeLogStar(n, b): ` ` `  `    ``count ``=` `0` `    ``while``(n >``=` `1``): ` `        ``n ``=` `_log(n, b) ` `        ``count ``=` `count ``+` `1` ` `  `    ``return` `count ` ` `  `# This code is contributed by ` `# Sanjit_Prasad `

## tags:

Analysis Mathematical Mathematical