如何在 Java 中检查一个数是否为 Insolite 数?
如果一个数能被其每位数字平方和以及所有数字乘积的平方整除,则称该数为 Insolite 数。
为了更清楚地说明,我们需要找到每位数字的平方和。然后我们需要将给定数字的每位数字相乘,之后计算其平方值。如果给定数字能被这两个结果值整除,那么我们可以说给定数字是 Insolite 数。
在这篇文章中,我们将学习如何使用 Java 编程语言来检查一个数是否为 Insolite 数。
举几个例子
实例 1
输入数字为 1122112。
让我们使用 Insolite 数的逻辑来检查它。
1122112 每位数字平方和 =
= (1^2) + (1^2) ++ (2^2) + (2^2) + (1^2) + (1^2) + (2^2) = 1 + 1 + 4 + 4 + 1 + 1 + 4 = 16
1122112 所有数字乘积的平方 =
=(1 * 1 * 2 * 2 * 1 * 1 * 2 ) ^ 2 = 64
1122112 可以被 16 和 64 整除。
因此,1122112 是一个 Insolite 数。
实例 2
输入数字为 123123。
让我们使用 Insolite 数的逻辑来检查它。
123123 每位数字平方和 =
=(1^2) + (2^2) ++ (3^2) + (1^2) + (2^2) + (3^2) = 1 + 4 + 9 + 1 + 4 + 9 = 28
123123 所有数字乘积的平方 =
=(1 * 2 * 3 * 1 * 2 * 3) ^ 2 = 1296
123123 不能同时被 28 和 1296 整除。
因此,123123 不是一个 Insolite 数。
实例 3
输入数字为 121212。
让我们使用 Insolite 数的逻辑来检查它。
121212 每位数字平方和 =
= (1^2) + (2^2) ++ (1^2) + (2^2) + (1^2) + (2^2) = 1 + 4 + 1 + 4 + 1 + 4 = 15
121212 所有数字乘积的平方 =
= (1 * 2 * 1 * 2 * 1 * 2) ^ 2 = 64
121212 不能同时被 15 和 64 整除。
因此,123123 不是一个 Insolite 数。
语法
在 Java 中,我们可以使用内置的 java.lang.Math.pow() 方法来获取任何数的幂。
以下是使用该方法获取 2 的幂的语法
double power = Math.pow(inputValue,2)
算法
步骤 1 - 获取一个整数,可以通过初始化或用户输入获得。
步骤 2 - 然后循环,直到二进制数等于零。
步骤 3 - 计算每位数字平方的和与积。
步骤 4 - 最后,检查结果值是否可以被输入数字整除。
步骤 5 - 如果可以整除,则得出结论,该数字是 Insolite 数,否则该数字不是 Insolite 数。
多种方法
我们提供了多种解决方法。
使用静态输入值
使用用户定义的方法
让我们逐一查看程序及其输出。
方法 1:使用静态输入值
在这种方法中,程序中将初始化一个整数值,然后使用算法检查该数是否为 Insolite 数。
示例
import java.util.*; import java.lang.Math; public class Main{ //main method public static void main (String[] args){ //declare a variable with a static input value int inputNumber = 1122112 ; //store the input number into an another variable int temp = inputNumber; // for storing the addition value declare a variable int sum = 0; // for storing the multiplication value declare a variable int prod = 1; //loop to calculate both sum and product value while (temp != 0){ // take digits from unit place int i = temp % 10; //calculate the sum value sum = sum + (int)Math.pow(i, 2); //calculate the multiplication value prod = prod * (int)Math.pow(i, 2); //removing that unit place value temp = temp / 10; } //check the condition //whether both resultant values are divisible by inputNumberor not if((inputNumber % sum == 0) && (inputNumber % prod == 0)) System.out.print(inputNumber + " is an Insolite Number."); else System.out.print(inputNumber + " is not an Insolite Number."); } }
输出
1122112 is an Insolite Number.
方法 2:使用用户定义的方法
在这种方法中,将提示用户输入一个整数值,然后我们将通过将此输入数字作为参数传递给用户定义的方法。
在方法内部,我们将使用算法检查该数是否为 Insolite 数。
示例
public class Main{ //main method public static void main (String[] args){ //declare an int variable and initialize a number int inputNumber =126317; System.out.println("Given number: "+inputNumber); //call the user defined method inside conditional statement if (checkInsolite(inputNumber)){ //if its true System.out.println(inputNumber + " is an Insolite Number."); } else { //if its true System.out.println(inputNumber + " is not an Insolite Number."); } } // define the user defined method // check for Insolitenumber static boolean checkInsolite(int inputNumber){ //store the input number into an another variable int temp = inputNumber; // for storing the addition value declare a variable int sum = 0; // for storing the multiplication value declare a variable int prod = 1; //loop to calculate both sum and product value while (temp != 0){ // take digits from unit place int i = temp % 10; //calculate the sum value sum = sum + i * i; //calculate the multiplication value prod = prod * i * i; //removing that unit place value temp = temp / 10; } //check the condition //whether both resultant values are divisible by inputNumberor not if((inputNumber % sum == 0) && (inputNumber % prod == 0)) return true; else return false; } }
输出
Given number: 126317 126317 is not an Insolite Number.
在这篇文章中,我们探讨了如何在 Java 中使用不同的方法来检查一个数是否为 Insolite 数。