[英](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。
代碼適用於以下主要內容:
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.