【发布时间】:2014-01-25 19:22:10
【问题描述】:
我正在尝试用 Java 编写一个代码,该代码可以接受一个整数数组,并使用一个名为 contains 的定义方法来确定该数组是否包含素数、完美平方或负数的元素。该方法接受一个整数数组,如果数组中存在满足指定条件的任何项,则返回 true。比如下面的代码片段:
int[] input = {100, 37, 49};
boolean result1 = contains(input, new Prime( ));
boolean result2 = contains(input, new PerfectSquare( ));
boolean result2 = contains(input, new Negative( ));
result1 会返回 true,因为 37 是素数,result2 也会返回 true,因为 100 和 49 是完美的正方形,result3 会返回 false,因为没有一个元素是负数。代码需要实现:
用于指定要包含的第二个参数的接口。
contains方法本身(这是一个静态方法)。负数、质数和完美平方类。
我的主要问题是确定如何编写 contains 方法以及 Prime 和 PerfectSquare 类。任何帮助将不胜感激。
【问题讨论】:
-
你具体卡在哪里了?
-
我只是不确定如何在 java 中定义质数或完美正方形。我真的在寻找一种可以确定任何给定数字是否为素数的算法,以及一种确定数字是否是完美平方的算法。这些是我的主要问题。很抱歉,如果我不是很清楚,这是我第一次在这里发布问题。
-
不知道素数或完全平方数的算法不是 Java 问题,而是数学问题。 Wikipedia 上有非常非常好的算法,将它们翻译成 Java 并不难。至少对于完美的正方形,我会给你一个提示:你想要一个值 X,这样
(int)sqrt(X*X) == X。
标签: java arrays interface contains primes