我是个新手,所以对于任何愚蠢的错误我深表歉意。
代码如下:
public static void keepOnlyCompositeNumbers( List<Integer> nums ){
int num=0;
boolean isPrime=true;
for(int i=0; i<nums.size(); i++){
num=nums.get(i);
{
for (int o = 2; o < num; ++i)
{
if (num % o == 0){
isPrime=false;
o=2;
if(isPrime==true){
nums.remove(num);
}
}
}
}
以及运行者类:
Integer[] nums = {2,6,8,9,10,12,13,15,17,24,55,66,78,77,79};
List<Integer> list = new ArrayList<Integer>( Arrays.asList(nums) );
System.out.println( list );
ArrayListFunHouse.keepOnlyCompositeNumbers( list );
System.out.println( list );
没有打印任何内容。有人可以告诉我我做错了什么吗?我已经被难住有一段时间了。任何帮助,将不胜感激。谢谢!
最佳答案
更高效的 checkPrime
boolean checkPrime(int n) {
for(int i=2;i<=n/2;i++) {
if(n%i==0)
return false;
}
return true;
}
关于java - 我试图从数组列表中删除所有素数,但没有打印任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518287/