簡體   English   中英

(java) 我的素數生成器最多只能工作 200

[英](java) My prime number generator works only up to 200

我使用 Eratosthenes 的篩子作為我的框架。 它的工作范圍為 2-199,但它只是停止打印超出此范圍的值。 這是我的代碼:

import java.util.ArrayList;
public class Scratchpad
{
    public Scratchpad()
    {

    }

    public ArrayList<Integer> makeList(int max)
    {
        ArrayList<Integer> arrList = new ArrayList<Integer>();
        for (int i = 2; i <= max; i++)
        {
            arrList.add(i);
        }
        return arrList;
    }

    public ArrayList<Integer> removeMult(ArrayList<Integer> arrList, int n)
    {
        for (int i = 0; i < arrList.size(); i++)
        {
            if ((arrList.get(i) % n == 0) && arrList.get(i) != n)
            {
                arrList.remove(i);
                i--;
            }
        }
        return arrList;
    }

    public ArrayList<Integer> primesOnly(ArrayList<Integer> arrList)
    {
        for (int i = 0; i < arrList.size(); i++)
        {
            removeMult(arrList, arrList.get(i));
            System.out.println(arrList.get(i));
        }
        return arrList;
    }
}

它適用於所有素數 2-199。

cmd 屏幕帽(對不起,糟糕的作物)

代碼適用於以下主要內容:

public static void main (String[] args) {

    Scratchpad s = new Scratchpad();

    ArrayList nums = s.makeList(500);

    System.out.println(nums);
    System.out.println(s.primesOnly(nums));

}

我想你可能只生成了一個不超過 200 的數字列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM