我正在打印素数数组,我的代码输出是2,没有迭代

问题描述 投票:-2回答:2
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循环没有迭代。我的代码有什么问题?

java
2个回答
1
投票

首先,我不知道您为什么要使用数组来打印素数。您的程序计数器变量中的主要错误不会为每个内循环迭代而重置,这就是为什么您将输出为2


0
投票

我认为您应该拆分程序:

© www.soinside.com 2019 - 2024. All rights reserved.