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/StrongRecursion.java)

## Dynamic Programming

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

/* 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
*/


Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove extra lines of code