Smith Number in Java2025年5月5日 | 阅读 4 分钟 在本节中,我们将学习什么是史密斯数,并创建Java 程序来检查给定的数字是否为史密斯数。史密斯数程序经常出现在 Java 编码测试和学术中。 史密斯数史密斯数是一个合数,其各位数字之和等于其质因数(不包括 1)的各位数字之和。它也被称为笑话数。它是 OEIS A006753 序列中的一个数字。 n 的各位数字之和 = n 的质因数(按重数计数)的各位数字之和 让我们通过一个例子来理解。 史密斯数示例示例 1:假设我们想检查数字 85 是否为史密斯数。 各位数字之和 = 8 + 5 = 13 85 的质因数是:5, 17 其质因数的各位数字之和 = 5 + 1 + 7 = 13 将各位数字之和与其质因数的各位数字之和进行比较,即 13=13。两者相等。因此,给定数字 (85) 是一个史密斯数。 示例 2:让我们检查另一个数字 999 是否为史密斯数。 各位数字之和 = 9 + 9 + 9 = 27 999 的质因数是:3×3×3, 37 其质因数的各位数字之和 = 3 + 3 + 3 + 3 + 7 = 19 将各位数字之和与其质因数的各位数字之和进行比较,即 27≠19。因此,给定数字 (999) 不是一个史密斯数。 ![]() 类似地,我们也可以检查其他数字。其他一些史密斯数包括 4、27、85、94、121、166、202、265、274、319、346、666 等。 查找史密斯数的步骤
让我们在 Java 程序中实现上述步骤。 史密斯数 Java 程序SmithNumberExample1.java 输出 1 ![]() 输出 2 ![]() 让我们创建一个 Java 程序,找出所有小于 10,000 的史密斯数。 SmithNumberExample2.java 输出 4, 22, 27, 58, 85, 94, 121, 166, 202, 265, 274, 319, 346, 355, 378, 382, 391, 438, 454, 483, 517, 526, 535, 562, 576, 588, 627, 634, 636, 645, 648, 654, 663, 666, 690, 706, 728, 729, 762, 778, 825, 852, 861, 895, 913, 915, 922, 958, 985, 1086, 1111, 1165, 1219, 1255, 1282, 1284, 1376, 1449, 1507, 1581, 1626, 1633, 1642, 1678, 1736, 1755, 1776, 1795, 1822 注意:在上面的输出中,我们只显示了少数史密斯数,因为史密斯数很多。所以,请自行尝试。 |
我们请求您订阅我们的新闻通讯以获取最新更新。