我想用方法从数组中打印出所有素数。我可以用一个 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<tab.length; i++)
if (( tab[i]%2 !=0 && prime && tab[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 <= Math.sqrt(n); i += 2) {
if (n % i == 0) {
prime = false;
break;
}
}
if ((n % 2 != 0 && prime && n > 2) || n == 2) {
return true;
} else {
return false;
}
}
我建议你将其分为两种方法:
- 一种判断单个数是否为质数的方法
- 一种迭代数组的方法,对每个数字调用第一个方法,并打印出该方法返回 true 的值。
这就巧妙地区分了这两个问题。如果您不知道如何执行此操作,请详细说明您觉得困难的部分。 (我假设这是家庭作业,这就是为什么我不只包含代码。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)