In the previous article, we have discussed Java Program to Check Ugly Number
In this article we are going to understand what Peterson number is and how we can check whether a number is Peterson number or not in Java with examples.
Program to Check Peterson Number
Peterson numbers are numbers whose factorial of individual digits adds up to the number itself. These are also known as strong number or Krishnamurthy number.
Example : 145: 1!+4!+5!= 1+24+120 = 145 Peterson number 10: 1!+0!=1+0=11 Not a Peterson number 127: 1!+2!+7!= 1+2+5040 =5043 Not a Peterson number
In the above examples the numbers 10 and 127 are not Peterson numbers as their factorials don’t add up to the numbers. Hence 145 is the only Peterson number here.
Let’s see different ways to check Peterson number.
If you are new to Java and want to learn the java coding skills too fast. Try practicing the core java programs with the help of the Java basic programs list available.
Approach :
- Enter/declare a number and store it .
- We calculate the factorials of each digit using a function and add them.
- If the resultant sum is the same as the entered number, then the number is said to be a Peterson number.
Method-1:Java Program to Check Peterson Number By Using Static Value
import java.util.*; public class PetersonNumber { public static void main(String args[]) { //A number declared int num = 145; int temp = num,remainder, sum =0; //Loop to iterate through digits and add their factorials while(temp>0) { remainder = temp%10; sum+= factorialOf(remainder); temp = temp /10; } if(sum==num) { System.out.println(num+" is a Peterson number"); } else { System.out.println(num+" is not a Peterson number"); } } // Function that returns the factorial of the number static int factorialOf(int num) { int prod = 1; while(num>0) { prod = prod*num; num--; } return prod; } }
Output: 145 is a Peterson number
Method-2: Java Program to Check Peterson Number By User Input Value
import java.util.*; public class PetersonNumber { public static void main(String args[]) { //Taking the number as input from the user using scanner class Scanner scan = new Scanner(System.in); System.out.print("Enter a number : "); int num = scan.nextInt(); int temp = num,remainder, sum =0; //Loop to iterate through digits and add their factorials while(temp>0) { remainder = temp%10; sum+= factorialOf(remainder); temp = temp /10; } if(sum==num) { System.out.println(num+" is a Peterson number"); } else { System.out.println(num+" is not a Peterson number"); } } // Function that returns the factorial of the number static int factorialOf(int num) { int prod = 1; while(num>0) { prod = prod*num; num--; } return prod; } }
Output: Case-1 Enter a number : 145 145 is a Peterson number Case-2 Enter a number : 14 14 is a Peterson number
Method-3: By C Programming Language
#include<stdio.h> #include<math.h> int main() { long int sum=0,f,temp,fact, number; printf("Entre a Number:"); scanf("%ld", &number); temp=number; while(number>0) { for(f=number%10, fact=1;f>0;f--) { fact=f*fact; } sum+=fact; number/=10; } if(sum==temp) printf("Peterson number"); else printf("Not a Peterson Number"); return 0; }
Are you a job seeker and trying to find simple java programs for Interview? This would be the right choice for you, just tap on the link and start preparing the java programs covered to crack the interview.
Related Java Programs: