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。
给定数20671542的真除数为=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。
给定数12343233的真除数为=1、3、7、21、587773、1763319、4114411。
以上数字的和=18808768
我们注意到这里计算出的和值和原始数的倒数不相等。
因此,12343233不是一个Tcefrep数。
步骤
步骤1: 通过静态输入或用户输入获取输入的数。
步骤2: 找到原始数的倒数。
步骤3 - 现在找到原始数的所有可能的真因子,并计算它们的和。
步骤4 - 然后将反向值与计算得到的和值进行比较。
步骤5 - 如果这两个值相等,那么输入的数被称为Tcefrep数;否则不是。
语法
要求一个数的平方根,我们可以使用Java语言包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.
在本文中,我们探讨了如何通过使用不同的方法来检查一个数字是否是Tcefrep数字的Java。