定义一种方法,用于确定数组中的元素是负数,素数还是完美正方形

时间:2014-01-25 19:22:10

标签: java arrays interface contains primes

我正在尝试用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方法本身(这是一种静态方法)。

  • 类Negative,Prime和Perfect Square。

我的主要问题是确定如何编写contains方法以及Prime和PerfectSquare类。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

要确定数字是否为素数,您需要将数字除以1中的每个数字到该数字的平方根。

static boolean isPrime(int num){
for(int i=2;i<=Math.sqrt(num);i++){
if (num%i==0)//if you can divide him by a number other than 1 and himself return false
return false
         }
return true;

}

要确定一个数字是否为完美正方形,只需执行其平方根并检查它是否为int

static boolean isPerfectRoot(int num){
double sqrt=Math.sqrt(num);
int casting=(int)(sqrt);//cast it to an int
if(sqrt%casting==0)
return true;
else
return false


}

我假设您知道如何编写方法isNegative()。您可以在contains方法中调用这3个方法。您的contains方法必须基本上循环遍历数组并在每个输入上调用3个方法。 你需要什么课程,没有任何意义,尤其是你没有给他们任何论据,你能澄清你的意图吗?