如何在 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 中检查一个数字是否为丑数。

更新于: 2022 年 11 月 17 日

987 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告