Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strong Number Using Indirect recursion #1564

Merged
merged 14 commits into from
Dec 20, 2020
1 change: 1 addition & 0 deletions Java/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ _add list here_
- [Sieve of Eratosthenes](math/SieveOfEratosthenes.java)
- [Catalan Number](math/CatalanNumber.java)
- [Palindrome Number Using Recursion](math/PalindromeRecursion.java)
- [Strong Number Using Recursion](math/check_strong_number.java)

## Dynamic Programming

Expand Down
50 changes: 50 additions & 0 deletions Java/math/check_strong_number.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@

/*
Checking for a strong number using indirect recursion
Strong Number = 145
1! + 4! + 5! =145
sumOfFactorialOfDigit(int n) - extracts digit of n and calls factorial(n). Returns sum of factorial of digits
factorial(n)- returns factorial of extracted digits passed in the argument
*/

import java.util.*;
class check_strong_number {
/*recursive function for sum of factorial of digits*/
public static int sumOfFactorialOfDigit(int n)

{
if (n == 0)
return n;
else
return (factorial(n % 10) + sumOfFactorialOfDigit(n / 10));

}
/*recursive function to find the factorial of n */
public static int factorial(int n) {
if (n == 0)
return 1;
else
return (n * factorial(n - 1));
}

public static void main() {
Scanner sc = new Scanner(System.in);
System.out.print(" Enter Number. N = ");
int num = sc.nextInt();
if (num == sumOfFactorialOfDigit(num))
System.out.println(" It is a Strong Number");
else
System.out.println(" It is not a Strong Number");
}
}

/*
Sample Input And Output :
N = 145
It is a Strong Number
N = 534
It is not a Strong Number

Time Complexity : O(n)
Space Complexity : 1
*/