从数组中打印出素数

我想用方法打印出数组中的所有素数。 我可以使用一个int,但不知道如何从数组返回某些数字。 感谢帮助!

public static boolean isPrime(int [] tab) { boolean prime = true; for (int i = 3; i <= Math.sqrt(tab[i]); i += 2) if (tab[i] % i == 0) { prime = false; break; } for(int i=0; i 2) || tab[i] == 2) { return true; } else { return false; } //return prime; } 

谢谢你们两个。 好像它解决了:

 public static void isPrime(int[] tab) { for (int i = 0; i < tab.length; i++) { if (isPrimeNum(tab[i])) { System.out.println(tab[i]); } } } public static boolean isPrimeNum(int n) { boolean prime = true; for (long i = 3; i  2) || n == 2) { return true; } else { return false; } } 

我建议你把它分成两种方法:

  • 确定单个数字是否为素数的一种方法
  • 迭代数组的一种方法,使用每个数字调用第一个方法,并打印出方法返回true的值。

这整齐地区分了两个问题。 如果你坚持如何做到这一点,请详细说明你发现哪一点很难。 (我假设这是作业,这就是我不仅仅包含代码的原因。)

假设你有:

  • 一个整数数组,其中一些是素数,一些不是素数。
  • 用于测试其中一个数字是否为素数的函数。

只需迭代数组,并为每个数字:

 if (isPrime(n)) { system.out.println(n); } 

您可能不想尝试一次执行多个int,一次一个应该更容易编码。