public class Number {
public void prime(int n) {
int[] arr = new int[n+1];
int counter = 0;
for( int k=0;k<arr.length;k++) {
for (int i = 2; i <= arr.length; i++) {
for (int j = 2; j <= i; j++) {
if (i % j == 0) {
counter = counter + 1;
}
}
if (counter == 1) {
arr[k]=i;
System.out.println(arr[k]);
}
}
}
}
public static void main(String[] args) {
Number fib = new Number();
fib.prime(7);
}
}
这是我的获取质数数组的代码,但是for
循环没有迭代。我的代码有什么问题?
首先,我不知道您为什么要使用数组来打印素数。您的程序计数器变量中的主要错误不会为每个内循环迭代而重置,这就是为什么您将输出为2
我认为您应该拆分程序: