Java 程序检查 Peterson 数

编写一个 Java 程序来检查 Peterson 数。如果每个数字的阶乘之和等于实际数字,则任何数字都可以是 Peterson 数。这里,for(int temp = pnum; temp > 0; temp = temp/10) 用于将数字分解为单个数字。接下来,for(int i = 1; i <= rem; i++) 循环用于查找这些单个数字的阶乘。If 语句 if (sum == pnum) 检查总和是否等于实际数字,如果为真,则它是一个 Peterson 数。

package NumPrograms;

import java.util.Scanner;

public class PetersonNumber1 {
	private static Scanner sc;
	
	public static void main(String[] args) {
		int fact, rem, sum = 0;
		sc = new Scanner(System.in);	
		
		System.out.print("Please Enter Number to Check Peterson Num = ");
		int pnum = sc.nextInt();
		
		for(int temp = pnum; temp > 0; temp = temp/10)
		{
			fact = 1;
			rem = temp % 10;
			
			for(int i = 1; i <= rem; i++) 
			{
				fact = fact * i;
			}
			sum = sum + fact;
		}

		if (sum == pnum) 
		{
			System.out.println(pnum +  " is a Peterson Number");
		}
		else 
		{
			System.out.println(pnum +  " is Not a Peterson Number");
		}
	}

}
Java Program to Check Peterson Number

此 Java 示例使用递归函数检查给定数字是否为 Peterson 数。calFactorial 函数将查找每个数字的阶乘,findPetersonNum 函数将把数字分解为数字并找到其阶乘总和。

package NumPrograms;

import java.util.Scanner;

public class PetersonNumber2 {
	private static Scanner sc;
	
	public static void main(String[] args) {

		sc = new Scanner(System.in);	
		
		System.out.print("Please Enter Number to Check Peterson Num = ");
		int pnum = sc.nextInt();
		
		int sum = findPetersonNum(pnum);

		if (sum == pnum) 
		{
			System.out.println(pnum +  " is a Peterson Number");
		}
		else 
		{
			System.out.println(pnum +  " is Not a Peterson Number");
		}
	}
	
	public static int calFactorial(int pnum) {
		
		if(pnum == 0 || pnum == 1)
		{
			return 1;
		}
		else
		{
			return pnum * calFactorial(pnum - 1);
		}
	}
	
	public static int findPetersonNum(int pnum) {
		int fact, rem, sum = 0;
		
		for(; pnum > 0; pnum = pnum/10)
		{
			fact = 1;
			rem = pnum % 10;		
			fact = calFactorial(rem);
			System.out.println("Factorial of " + rem + " = " + calFactorial(rem));
			sum = sum + calFactorial(rem);;
		}
		return sum;
	}
}
Please Enter Number to Check Peterson Num = 145
Factorial of 5 = 120
Factorial of 4 = 24
Factorial of 1 = 1
145 is a Peterson Number

Java 程序使用 while 循环检查 Peterson 数

package NumPrograms;

import java.util.Scanner;

public class PetersonNumber3 {
	private static Scanner sc;
	
	public static void main(String[] args) {

		sc = new Scanner(System.in);
		
		System.out.print("Please Enter Number to Check Peterson Num = ");
		int pnum = sc.nextInt();
		
		int sum = findPetersonNum(pnum);

		if (sum == pnum) 
		{
			System.out.println(pnum +  " is a Peterson Number");
		}
		else 
		{
			System.out.println(pnum +  " is Not a Peterson Number");
		}
	}
	
	public static int calFactorial(int pnum) {
		
		if(pnum == 0 || pnum == 1)
		{
			return 1;
		}

		return pnum * calFactorial(pnum - 1);
	}
	
	public static int findPetersonNum(int pnum) {
		int rem, sum = 0;
		
		while(pnum > 0)
		{
			rem = pnum % 10;		
			sum = sum + calFactorial(rem);
			pnum = pnum/10;
		}
		return sum;
	}
}
Please Enter Number to Check Peterson Num = 40585
40585 is a Peterson Number


Please Enter Number to Check Peterson Num = 125
125 is Not a Peterson Number

此 Java 程序 打印 1 到 N 或 1000 之间的 Peterson 数列表。

package NumPrograms;

import java.util.Scanner;

public class PetersonNumber4 {
	private static Scanner sc;
	
	public static void main(String[] args) {

		sc = new Scanner(System.in);
		
		System.out.print("Enter Perterson Numbers Start and End Range = ");	
		int start = sc.nextInt();
		int end = sc.nextInt();
		
		System.out.println("The List of Peterson Numbers from " + start + " to " + end);
		for(int i = start; i <= end; i++)
		{
			if (findPetersonNum(i) == i) 
			{
				System.out.println(i + " is a Peterson Number");
			}
		}
	}
	
	public static int calFactorial(int pnum) {
		
		if(pnum == 0 || pnum == 1)
		{
			return 1;
		}

		return pnum * calFactorial(pnum - 1);
	}
	
	public static int findPetersonNum(int pnum) {
		int rem, sum = 0;
		
		for(;pnum > 0; pnum = pnum/10)
		{
			rem = pnum % 10;		
			sum = sum + calFactorial(rem);
		}
		return sum;
	}
}
Enter Perterson Numbers Start and End Range = 2 10000
The List of Peterson Numbers from 2 to 10000
2 is a Peterson Number
145 is a Peterson Number