Java 中的 Moran 数

2024年9月10日 | 阅读 6 分钟

在本教程中,我们将讨论Java 中的莫兰数。莫兰数是指一个数,当它除以其数字之和时,会生成一个质数。请注意,数字的数字之和应该是该数字的因数。让我们通过一些例子来理解。

示例 1

输入 45

输出:45 是一个莫兰数。

解释:数字 45 的数字之和为 4 + 5 = 9,当 45 除以 9 时,我们得到 45 / 9 = 5,而 5 是一个质数。因此,45 是一个莫兰数。

示例 2

输入 36

输出:36 不是莫兰数。

解释:数字 36 的数字之和为 3 + 6 = 9,当 36 除以 9 时,我们得到 36 / 9 = 4,而 4 不是质数。因此,36 不是莫兰数。

示例 3

输入 22

输出:22 不是莫兰数。

解释:数字 22 的数字之和为 2 + 2 = 4,而 4 不是数字 22 的因数。因此,22 不是莫兰数。

莫兰数校验

观察以下算法。

步骤 1: 输入一个数字 n。

步骤 2:计算数字 n 的数字之和。

步骤 3:检查数字之和是否是数字 n 的因数。

  • 如果数字之和不是因数,则可以说数字 n 不是莫兰数。
  • 如果数字之和是因数,那么我们检查将数字除以数字之和得到的结果是否为质数。
  • 如果除法后的数字是质数,则给定的输入数字是莫兰数;否则不是。

实施

观察上述算法的实现。

文件名:MoranNum.java

输出

The number 45 is a Moran number.

The number 36 is not a Moran number.

The number 22 is not a Moran number.

查找范围内的莫兰数

在此方法中,我们将使用筛法来查找给定范围内的莫兰数。我们使用筛法是因为我们不想使用循环来验证质数。其余部分与上面编写的方法相同。观察程序。

文件名:MoranNum1.java

输出

The Moran numbers that lie within the range 1 to 200 are: 
18 21 27 42 45 63 84 111 114 117 133 152 153 156 171 190 195 198