Java 强数程序

使用 While 循环、For 循环和函数编写 Java 强数程序。我们还展示了如何打印 1 到 n 之间的强数。如果每个数字的阶乘之和等于给定的数字,则称为强数。

使用 While 循环的 Java 强数程序

此强数程序允许用户输入任何整数值。接下来,它使用 While 循环检查给定的数字是否为强数。

import java.util.Scanner;

public class StrongNumber1 {
private static Scanner sc;
public static void main(String[] args)
{
int Number, Temp, Reminder, Sum = 0, i, Factorial;
sc = new Scanner(System.in);

System.out.print(" Please Enter any Number : ");
Number = sc.nextInt();

Temp = Number;
while( Temp > 0)
{
Factorial = 1;
i = 1;
Reminder = Temp % 10;
while (i <= Reminder)
{
Factorial = Factorial * i;
i++;
}
System.out.println(" The Factorial of " + Reminder + " = " + Factorial);
Sum = Sum + Factorial;
Temp = Temp /10;
}

System.out.println(" The Sum of the Factorials of a Given Number " + Number + " = " + Sum);

if ( Number == Sum )
{
System.out.println("\n " + Number + " is a Strong Number");
}
else
{
System.out.println("\n " + Number + " is Not a Strong Number");
}
}
}
Java program for Strong Number 1

用户为此 Java 强数程序输入的数值:Number = 145 and Sum = 0
Temp = Number = 145

第一次迭代: while( Temp > 0)
Reminder = Temp % 10 => 145 % 10
Reminder = 5

接下来,它进入内部 While 循环。在这里,它计算 5 的阶乘 = 120。请参考 Java 中的 阶乘程序 文章。

Sum = Sum +120 => 0 + 120
Sum = 120

Temp = Temp /10 => 145 /10
Temp = 14

第二次迭代: while( 14 > 0)
从第一次迭代开始,Temp 和 Sum 的值都已更改为 Temp = 14 和 Sum = 120
Reminder = 14 % 10 = 4

接下来,它计算 4 的阶乘,即 24。
Sum = 120 + 24
Sum = 144

Temp = 14 /10
Temp = 1

第三次迭代: while( 1 > 0)
从第二次迭代开始:Temp = 1 and Sum = 144
Reminder = 1 % 10 = 0

接下来,1 的阶乘是 1
Sum = 144 + 1
Sum = 145

Temp = 1 / 10
Temp = 0

在此, Temp = 0。因此,While Loop 中的条件失败

if ( Number == Sum ) => if(145 = 145) – 条件为真。因此,给定的数字是强数

使用 For 循环的 Java 强数程序

此程序允许用户输入任何整数值。接下来,它使用 For 循环检查给定的数字是否为强数。

我们只是将上面强数示例中的 While 循环替换为 For 循环。如果您不理解 For 循环,请参考 FOR LOOP

import java.util.Scanner;

public class Example2 {
	private static Scanner sc;
	public static void main(String[] args) 
	{
		int Number, Temp, Reminder, Sum = 0, i, Factorial;
		sc = new Scanner(System.in);
		
		System.out.print(" Please Enter any Number : ");
		Number = sc.nextInt();		
		
		for(Temp = Number; Temp > 0; Temp = Temp /10)
		{
			Factorial = 1; 
			
		    Reminder = Temp % 10;
		    for(i = 1; i <= Reminder; i++)
		    {
		     	Factorial = Factorial * i;
		    }
		    System.out.println(" The Factorial of " + Reminder + "  =  " + Factorial);
		     Sum = Sum + Factorial;
		}
		
		System.out.println(" The Sum of the Factorials " + Number + " =  " + Sum);
		
		if ( Number == Sum )
		{
			System.out.println("\n " + Number + " is a Strong Number");
		}
		else
		{
		   System.out.println("\n " + Number + " is Not");
		}
	}
}
 Please Enter any Number : 40585
 The Factorial of 5  =  120
 The Factorial of 8  =  40320
 The Factorial of 5  =  120
 The Factorial of 0  =  1
 The Factorial of 4  =  24
 The Sum of the Factorials 40585 =  40585

 40585 is a Strong Number

使用方法的 Java 强数程序

强数程序 与第一个示例相同。但是,我们将强数逻辑分开并将其放在一个单独的方法中。

import java.util.Scanner;

public class Example3 {
	private static Scanner sc;
	public static void main(String[] args) 
	{
		int Number, Temp, Reminder, Sum = 0, Factorial;
		sc = new Scanner(System.in);
		
		System.out.print(" Please Enter any Number : ");
		Number = sc.nextInt();		
		
		for(Temp = Number; Temp > 0; Temp = Temp /10)
		{
			Factorial = 1; 		
		    Reminder = Temp % 10;
		    
		    // Calling Calculate_factorial Function
		    Factorial = Factorial(Reminder);
		    
		    System.out.println(" The Factorial of " + Reminder + "  =  " + Factorial);
		    Sum = Sum + Factorial;
		}
		
		System.out.println(" The Sum of the Factorials of a Given Number " + Number + " =  " + Sum);
		
		if ( Number == Sum )
		{
			System.out.println("\n " + Number + " is a Strong Number");
		}
		else
		{
		   System.out.println("\n " + Number + " is Not");
		}
	}
	public static int Factorial(int num)
	{
		if (num == 0 || num == 1)
			return 1;
		else
		    return num * Factorial (num -1);
	}
}
 Please Enter any Number : 145
 The Factorial of 5  =  120
 The Factorial of 4  =  24
 The Factorial of 1  =  1
 The Sum of the Factorials of a Given Number 145 =  145

 145 is a Strong Number

Java 程序打印 1 到 N 的强数

此强数程序 接受用户输入的最小和最大值。接下来,它打印最小和最大值之间的强数列表。

import java.util.Scanner;

public class PrintStrongNumbers1 {
	private static Scanner sc;
	public static void main(String[] args) 
	{
		int Number, minimum, maximum, Temp, Sum = 0;
		sc = new Scanner(System.in);
		
		System.out.print(" Please Enter the Minimum value : ");
		minimum = sc.nextInt();			
		
		System.out.print(" Please Enter the Maximum value : ");
		maximum = sc.nextInt();	
		
		for(Number = minimum; Number <= maximum; Number++)
		{
			Temp = Number; 
			Sum = StNum(Temp);
		
			if (Number == Sum )
			{
				System.out.println(" " + Number + " is a Strong Number");
			}
		}
	}
	public static int Factorial(int num)
	{
		if (num == 0 || num == 1)
			return 1;
		else
		    return num * Factorial (num -1);
	}
	public static int StNum(int num)
	{
		int Temp, Reminder, Sum = 0, Factorial;
		
		for(Temp = num; Temp > 0; Temp = Temp /10)
		{
			Factorial = 1; 			
			Reminder = Temp % 10;
			Factorial = Factorial(Reminder);
			Sum = Sum + Factorial;
		}
		return Sum;
	}
}

1 到 N 的强数输出

 Please Enter the Minimum value : 10
 Please Enter the Maximum value : 100000
 145 is a Strong Number
 40585 is a Strong Number