如何在Java中检查一个数是否为Tcefrep数?
如果一个数的反转等于其真因数之和,则称该数为Tcefrep数。
为了更清楚地说明,我们找到一个数的因数之和,并找到原始数的反转。如果和值和给定数的反转相同,那么我们可以说给定数是一个Tcefrep数。
一些Tcefrep数的例子是:6、498906、20671542……等等。
在本文中,我们将了解如何使用Java编程语言来检查一个数是否为Tcefrep数。
为您展示一些实例
实例1
输入数字为498906。
让我们使用Tcefrep数的逻辑来检查它。
给定数字的反转= 609894。
给定数字498906的真因数为= 1、2、3、6、9、18、27、54、9239、18478、27717、55434、83151、166302、249453。
以上数字之和 = 609894
正如我们在这里看到的,计算出的和值和原始数字的反转相同。
因此,498906是一个Tcefrep数。
实例2
输入数字为20671542。
让我们使用Tcefrep数的逻辑来检查它。
给定数字的反转= 24517602。
给定数字498906的真因数为= 1、2、3、6、9、18、113、226、339、678、1017、2034、10163、20326、30489、60978、91467、182934、1148419、2296838、3445257、6890514、10335771。
以上数字之和 = 24517602
正如我们在这里看到的,计算出的和值和原始数字的反转相同。
因此,20671542是一个Tcefrep数。
实例3
输入数字为12343233。
让我们使用Tcefrep数的逻辑来检查它。
给定数字的反转= 33234321。
给定数字498906的真因数为= 1、3、7、21、587773、1763319、4114411。
以上数字之和 = 18808768
正如我们在这里看到的,计算出的和值和原始数字的反转不相同。
因此,12343233不是一个Tcefrep数。
算法
步骤1 - 通过静态输入或用户输入获取输入数字。
步骤2 - 找到原始数字的反转。
步骤3 - 现在找到原始数字的所有可能的真因数并计算其和。
步骤4 - 然后将反转值与计算出的和值进行比较。
步骤5 - 如果两个值相同,则输入数字称为Tcefrep数,否则不是。
语法
要获取一个数的平方根,我们在java.lang包的Math类中有一个内置的sqrt()方法。
以下是使用该方法获取任何数的平方根的语法 -
double squareRoot = Math.sqrt(input_vale)
多种方法
我们提供了不同方法的解决方案。
使用静态输入值和用户定义方法
使用用户输入值和用户定义方法
让我们逐一查看程序及其输出。
方法1:使用静态输入值和用户定义方法
在这种方法中,我们声明一个变量并用一个正数初始化它,并将此数字作为参数传递给用户定义的方法,然后在方法内部使用算法,我们可以检查该数字是否为Tcefrep数。
示例
public class Main { //main method public static void main(String[] args) { //declare a variable and store a value by static input method int inputNumber = 20671542; //call the user-defined method to check for Tcefrep number if (checkTcefrep(inputNumber)) System.out.print(inputNumber+" is a Tcefrep number."); else System.out.print(inputNumber+" is not a Tcefrep number."); } //user-defined method to find the reverse of input number static int reverseNumber(int n) { //declare a variable to store the reverse number int rev = 0; //continue the loop till n becomes zero while(n > 0) { rev = rev * 10 + n % 10; n = n / 10; } //return the reverse number return rev; } // user-defined method to find all the proper divisors and return the sum value static int properDivisorsSum(int n) { // Declare a variable to store the sum value int sum = 0; // Loop to find the divisors for (int i = 2; i<= Math.sqrt(n); i++) { if (n % i == 0) { if (i == (n / i)) sum += i; else sum += (i + n / i); } } // We find divisors excluding 1 so we add one with final sum value return (sum + 1); } //user-defined method to check the Tcefrep number static boolean checkTcefrep(int n) { //return true if condition satisfied //here we are calling user defined method properDivisorsSum() //for sum of all proper divisors and calling reverseNumber() method //to get the reverse value of original number //and returning true if the result of both methods are same else return false return properDivisorsSum(n) == reverseNumber(n); } }
输出
20671542 is a Tcefrep number.
方法2:使用用户输入值和用户定义方法
在这种方法中,我们声明一个变量并获取用户输入的正数,并将此数字作为参数传递给用户定义的方法,然后在方法内部使用算法,我们可以检查该数字是否为Tcefrep数。
示例
import java.util.*; public class Main { //main method public static void main(String[] args) { //create object of Scanner class Scanner sc = new Scanner(System.in); //Ask user to enter a number System.out.print("Enter a number: "); //declare a variable and take the value by user input int inputNumber = sc.nextInt(); //call the user-defined method to check for Tcefrep number if (checkTcefrep(inputNumber)) System.out.print(inputNumber+" is a Tcefrep number."); else System.out.print(inputNumber+" is not a Tcefrep number."); } //user-defined method to find the reverse of input number static int reverseNumber(int n) { //declare a variable to store the reverse number int rev = 0; //continue the loop till n becomes zero while(n > 0) { rev = rev * 10 + n % 10; n = n / 10; } //return the reverse number return rev; } // user-defined method to find all the proper divisors and return the sum value static int properDivisorsSum(int n) { // Declare a variable to store the sum value int sum = 0; // Loop to find the divisors for (int i = 2; i<= Math.sqrt(n); i++) { if (n % i == 0) { if (i == (n / i)) sum += i; else sum += (i + n / i); } } // We find divisors excluding 1 so we add one with final sum value return (sum + 1); } //user-defined method to check the Tcefrep number static boolean checkTcefrep(int n) { //return true if condition satisfied //here we are calling user defined method properDivisorsSum() //for sum of all proper divisors and calling reverseNumber() method //to get the reverse value of original number //and returning true if the result of both methods are same else return false return properDivisorsSum(n) == reverseNumber(n); } }
输出
Enter a number: 6 6 is a Tcefrep number.
在本文中,我们探讨了如何在Java中使用不同的方法来检查一个数字是否为Tcefrep数。