Sphenic Number in Java2025年5月5日 | 阅读5分钟 在本节中,我们将学习什么是斯芬尼克数,并创建 Java 程序来检查给定数字是否为斯芬尼克数。斯芬尼克数程序经常出现在 Java 编码测试和学术界。 斯芬尼克数如果给定数字 (n) 的因子乘积恰好是三个,并且所有因子都是素数,则正整数 n 称为斯芬尼克数。换句话说,如果 n 是一个斯芬尼克整数,则 n=p x q x r(p、q 和 r 是三个不同的素数,它们的乘积是 n)。它是 OEIS 中的一个序列 A007304。让我们通过一个例子来理解它。 如果三个不同的素数相乘得到数字本身,那么这个数字就是斯芬尼克数。斯芬尼克数恰好有 8 个约数。 ![]() 这八个约数如下:
让我们考虑数字 42,并检查它是否是斯芬尼克数。 42 的因子是 1、2、3、7、21。让我们找出 8 个约数。
因此,42 是一个斯芬尼克数,因为它恰好有三个素因子 2、3 和 7,并且这些因子的乘积就是数字本身。 注意:一个素数的立方与另一个素数的乘积以及一个素数的七次幂也有 8 个约数。斯芬尼克数示例让我们取数字 30 并检查它是否是斯芬尼克数。 形成相同数字的最小三个素因子是 2、3 和 5。将它们相乘,我们得到相同的数字 30。因此,给定数字是一个斯芬尼克数。 让我们取另一个数字,110。 110=1,2,5,10,11,22,55 和 110 形成相同数字的最小三个素因子是 2、5 和 11。将它们相乘,我们得到相同的数字 110。因此,给定数字是一个斯芬尼克数。 让我们取另一个数字,23。 23=1,23 给定数字 23 不是一个斯芬尼克数。因为只有两个素因子。 同样,我们也可以检查其他数字。其他一些斯芬尼克数是 78、102、105、110、285、286、290、310、318、322、345 等。我们可以找到 OEIS 提供的 所有斯芬尼克数直到 10000 的完整列表。 斯芬尼克数 Java 程序上面我们讨论过,斯芬尼克数恰好有 8 个约数。所以,首先,我们将尝试找出这个数是否恰好有 8 个约数。之后,我们将检查前三位数字(除了 1)是否是素数。 SphenicNumberExample1.java 输出 1 Enter a number to check: 165 Yes, the given number is sphenic. 输出 2 Enter a number to check: 18967 No, the given number is not a sphenic. 让我们找出给定范围内的所有斯芬尼克数。 SphenicNumberExample2.java 输出 ![]() 让我们创建另一个 Java 程序,使用不同的逻辑来查找所有斯芬尼克数。 SphenicNumberExample3.java 输出 ![]() 下一个主题通过交换 Java 中的数据反转双向链表 |
我们请求您订阅我们的新闻通讯以获取最新更新。