如何在 Java 中检查一个数是否为丑数?
如果一个数字的质因数只包含 2、3 和 5,则称该数字为丑数。
也许有些数字的质因数只有一个或两个因数,但这些因数必须是 2、3 和 5 中的一个。
在这篇文章中,我们将了解如何使用 Java 编程语言来检查一个数字是否为丑数。
举几个例子
示例 1
输入数字为 20。
让我们用丑数的逻辑来检查它。
Prime factors of 20 = 2, 2, 5
因此,正如您在此处注意到的,所有质因数都只包含 2、3 和 5 中的一个。
因此,20 是一个丑数。
示例 2
输入数字为 30。
让我们用丑数的逻辑来检查它。
Prime factors of 30 = 2, 3, 5
因此,正如您在此处注意到的,所有质因数都只包含 2、3 和 5 中的一个。
因此,30 是一个丑数。
示例 3
输入数字为 14。
让我们用丑数的逻辑来检查它。
Prime factors of 14 = 2, 7
因此,正如您在此处注意到的,7 出现在上述质因数之一中。
因此,14 不是一个丑数。
算法
步骤 1 - 首先,我们定义一个函数来检查输入数字是否为质数。
步骤 2 - 从用户那里收集输入,可以使用静态方法或用户定义的方法。
步骤 3 - 初始化循环以查找输入数字的所有质因数。
步骤 4 - 找到质因数后,我们运行一个条件来检查这些因数是否仅包含 2、3 和 5。
步骤 5 - 如果条件为真,则打印输入数字是一个丑数,否则输入数字不是一个丑数。
多种方法
我们提供了不同方法的解决方案。
使用静态输入值
使用用户定义的方法
让我们逐一查看 Java 程序及其输出。
方法 1:使用静态输入值
在这种方法中,程序将初始化一个非零正整数,然后使用算法检查该数字是否为丑数。
示例
import java.util.Scanner; public class Main { public static void main(String args[]) { //declare a variable with a static value int inputNumber = 25; //declare a variable with boolean value boolean check = true; //initialise the loop for the checking of ugly number for(int i = 2; i<=inputNumber; i++) { // checks whether numbers only include 2,3 and 5 if(i!=2&&i!=3&&i!=5) { // Checks if there are some other prime factors if(inputNumber%i==0&&checkPrime(i)) { // Sets the flag to false if there are some other prime factors check = false; break; } } } if(check) { System.out.println(inputNumber+" is an ugly number"); } else { System.out.println(inputNumber+" is Not an ugly number"); } } // Function that checks for prime static boolean checkPrime(int number) { boolean flag = true; for(int i = 2; i<=number/2; i++) { if(number%i==0) { flag = false; break; } } return flag; } }
输出
25 is an ugly number
方法 2:使用用户定义的方法
在这种方法中,程序将初始化一个非零正整数,然后通过将该输入数字作为参数传递来调用用户定义的方法。
在方法内部,我们将使用算法检查该数字是否为丑数。
示例
import java.util.Scanner; public class Main { //initialise main method public static void main(String[] args) { //declare a variable with a static value int inp = 56; //check whether our condition is true or not in user defined method //if true number is ugly otherwise not if(checkUgly(inp)) { System.out.println(inp+" is an ugly number"); } else { System.out.println(inp+" is Not an ugly number"); } } // Function that checks for prime static boolean checkPrime(int number) { boolean flag = true; for(int i = 2; i<=number/2; i++) { if(number%i==0) { flag = false; break; } } return flag; } //define the user defined method //checking for ugly number public static boolean checkUgly(int inputNumber) { //declare a variable with boolean value boolean check = true; //initialise the loop for the checking of Ugly number for(int i = 2; i<=inputNumber; i++) { // checks whether numbers only include 2,3 and 5 if(i!=2&&i!=3&&i!=5) { // Checks if there are some other prime factors if(inputNumber%i==0&&checkPrime(i)) { // Sets the flag to false if there are some other prime factors return false; } } } return true; } }
输出
56 is Not an ugly number
在本文中,我们探讨了如何使用不同的方法在 Java 中检查一个数字是否为丑数。
广告