如何在 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 数。

更新于: 2022 年 10 月 27 日

303 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告