我正在处理PrimeSieve的ArrayList实现,并且我已经编写了所有代码,但似乎无法运行,所以我不确定是因为循环是坏的还是因为我设置了错误的扫描仪。扫描仪不工作 - Prime筛子。代码已完成
这是代码。
import java.util.Scanner;
import java.util.ArrayList;
public class PrimeSieve {
public static void main(String[] args)
{
int inputNum;
Scanner SL = new Scanner(System.in);
System.out.print("Pick a number to count up from:");
inputNum = SL.nextInt();
ArrayList<Boolean> BL = findPrime(inputNum);
System.out.println("The prime numbers found:");
for(int i = 0; i < inputNum; i++)
{
if(BL.get(i) == true)
{
System.out.println(i + ", ");
}
}
}
public static ArrayList<Boolean> findPrime(int maxNum)
{
ArrayList<Boolean> BL = new ArrayList<Boolean>();
//Filling in the list.
for(int i = 0; i < maxNum; i++)
{
BL.add(true);
}
for(int i = 0; i * i <(maxNum); i++)
{
if(BL.get(i) == true)
{
for(int k = i*2; k < maxNum; k = k + i)
{
BL.set(i, false);
}
}
}
return BL;
}
}
一旦我输入任何数字,然后按回车,什么都不起作用。我的假设是,该计划不断在某处循环,并且必须被打破。
有什么问题是什么呢?编译错误?例外?什么都没有发生?错误的结果...? – amit
你输入了什么(**和**回车)?我问这个,因为你没有提供任何示例输入和输出。 – skiwi
将一些System.out.println()调用添加到循环中以确保它们已执行。或者使用调试器。 –