Extravagant Number in Java

2025年5月10日 | 阅读 5 分钟

在本节中,我们将学习什么是浪费数,并创建Java 程序来检查给定的数字是否为浪费数浪费数 Java 程序经常出现在 Java 编码面试和学术中。

浪费数

一个自然数的数字个数少于其素数分解(包括指数)中数字个数的,被称为浪费数。由于这个特性,它也被称为浪费数

浪费数是合数的子集,因为可以对浪费数进行因数分解。但反之则不成立。

查找浪费数的步骤

步骤 1:选择一个自然数。假设这个数字是 n。

步骤 2:计算数字 n 的素数分解。将素数分解中的素数因子和它们的指数所包含的数字存储在一个数组中。

步骤 3:找到数组的大小。

步骤 4:计算数字 n 中包含的数字个数。

步骤 5:如果数字 n 中包含的数字总个数小于步骤 3 中找到的数组大小,则数字 n 是浪费数;否则不是。

浪费数的例子

浪费数素数分解数字中的数字个数素数分解(包括指数)中的数字个数
42 * 212
62 * 312
82 * 2 * 213
93 * 312
122 * 2 * 323
182 * 3 * 323
202 * 2 * 523
222 * 1123 (11 的两个数字)

我们看到,对于表中提到的每一个数字,数字个数都小于其素数分解(包括指数)中包含的数字个数。因此,上表中提到的数字是浪费数。

浪费数 Java 程序

以下程序使用上面定义的步骤来检查浪费数。

文件名:ExtravagantNumber.java

输出

1 is not an extravagant number.
2 is not an extravagant number.
3 is not an extravagant number.
4 is an extravagant number.
5 is not an extravagant number.
6 is an extravagant number.
7 is not an extravagant number.
8 is an extravagant number.
9 is an extravagant number.
10 is not an extravagant number.
11 is not an extravagant number.
12 is an extravagant number.
13 is not an extravagant number.
14 is not an extravagant number.
15 is not an extravagant number.
16 is not an extravagant number.
17 is not an extravagant number.
18 is an extravagant number.
19 is not an extravagant number.
20 is an extravagant number.
21 is not an extravagant number.
22 is an extravagant number.
23 is not an extravagant number.
24 is an extravagant number.
25 is not an extravagant number.
26 is an extravagant number.
27 is not an extravagant number.
28 is an extravagant number.
29 is not an extravagant number.
30 is an extravagant number.