Economical Number in Java

2025年5月9日 | 阅读 4 分钟

在 Java 中,面试官经常会问到数字相关的程序,例如阿姆斯特朗数素数回文数。与其他数字程序不同,经济型数字并不经常被面试官问到。

经济型数字是指其素因数分解中数字(包括幂)的总位数少于原始数字的位数。让我们看一些经济型数字的例子。

  1. 数字 125 是一个经济型数字,因为它的素因数分解是 5^3,包括幂在内的总数字数为 2,少于原始数字的位数。
  2. 数字 128 不是经济型数字,因为它的素因数分解是 (2^2 * 3^3)。这里,包括幂在内的总数字数为 4,大于原始数字的位数。
  3. 数字 625 是一个经济型数字,因为它的素因数分解是 5^5。这里,包括幂在内的总数字数为 2,少于原始数字的位数。

检查经济型数字的步骤

以下是检查数字是否为经济型数字的步骤:

  1. 第一步,我们将找到小于等于 10^6 的素数。
  2. 找到原始数字的总位数。
  3. 找到原始数字的所有素数因子,对于每个素数因子,我们计算其位数,并计算其能整除原始数字的最高幂,然后将两者相加。
  4. 如果素数因子的数字总数少于原始数字的总位数,则返回 true。

让我们实现代码来获取一定范围内的所有经济型数字

EconomicalNumber.java

输出

Economical Number in Java