Java 删除并打印数组中的素数
我有一个类的任务,目标是获取一个数组并通过一个方法运行它,该方法将以相反的顺序打印数组,然后通过第二个方法运行它以测试数字是否为素数,然后打印仍然相反的顺序数组,而不打印素数。我可以得到相反顺序的部分,很好,我遇到了质数部分的问题:Java 删除并打印数组中的素数,java,arrays,boolean,primes,Java,Arrays,Boolean,Primes,我有一个类的任务,目标是获取一个数组并通过一个方法运行它,该方法将以相反的顺序打印数组,然后通过第二个方法运行它以测试数字是否为素数,然后打印仍然相反的顺序数组,而不打印素数。我可以得到相反顺序的部分,很好,我遇到了质数部分的问题: public class Driver { public static void main(String[] args) { // CTORs int[] MyArray = { 10, 8, 7, 14, 22, 11 }
public class Driver {
public static void main(String[] args) {
// CTORs
int[] MyArray = { 10, 8, 7, 14, 22, 11 };
int[] myArray2 = new int[7];
// METHOD CALLING
MyArray = reverseOrder(6, MyArray);
MyArray = primeCheck(MyArray, 6);
for (int i = 0; i < myArray2.length; i++)
System.out.println(myArray2[i] + " ");
}// MAIN
/*--------------------ARRAY PRIME TEST---------------------*/
private static int[] primeCheck(int[] myArray, int num) {
//prime
boolean prime = true;
int[] myArray2 = new int[10];
//test all components of an array
for (int i = num + 1 ; i >= 0; i++) {
if (num % i > 0) {
prime = false;
System.arraycopy(myArray, 0, myArray2, 0, 4);
return myArray2;
}
}
return myArray2;
}// ISPRIME REMOVE
}// CLOSE CLASS
我感到非常生疏,因为这是长时间休息后返回的第一个作业,因此非常感谢任何指导或帮助。
myArray2
是定义的,从不填充值。所以每个元素都是0
我想
for (int i = 0; i < myArray2.length; i++)
for(int i=0;i
一定是
for (int i = 0; i < myArray.length; i++)
for(int i=0;i
对于(inti=num+1;i>=0;i++)来说,肯定有问题。
。以下是实现目标的一种方法
public static void main(String[] args) {
int[] arr = { 10, 8, 7, 14, 22, 11 };
for(int i = 0; i < arr.length; i++) {
if(!isPrime(arr[i])) {
System.out.print(arr[i] + " ");
}
}
}
public static boolean isPrime(int num) {
if(num < 2) return false;
if(num == 2) return true;
int remainder, divisor;
divisor = num - 1;
do {
try {
remainder = num % divisor;
} catch (ArithmeticException e) {
return false;
}
if(remainder == 0) return false;
divisor--;
} while (divisor > 1);
return true;
}
publicstaticvoidmain(字符串[]args){
int[]arr={10,8,7,14,22,11};
对于(int i=0;i1);
返回true;
}
for(int i=num+1;i>=0;i++)
看起来不正确。您是否尝试过一步一步地调试代码以找出哪里出了问题?在初始检查中,您没有检查数组的任何元素。将元素总数(6)与计数器变量进行比较。
public static void main(String[] args) {
int[] arr = { 10, 8, 7, 14, 22, 11 };
for(int i = 0; i < arr.length; i++) {
if(!isPrime(arr[i])) {
System.out.print(arr[i] + " ");
}
}
}
public static boolean isPrime(int num) {
if(num < 2) return false;
if(num == 2) return true;
int remainder, divisor;
divisor = num - 1;
do {
try {
remainder = num % divisor;
} catch (ArithmeticException e) {
return false;
}
if(remainder == 0) return false;
divisor--;
} while (divisor > 1);
return true;
}