java首10000素数错误

时间:2015-04-14 00:36:20

标签: java

我有一个方法可以递归地显示所有素数0-10000,但如果我尝试使它打印第10000个素数,则会抛出堆栈溢出异常。

public void One(int i) {
    int n;
    if(i<10000){
        One(i+1);
    }
    for(n=2;n<i;n++) {
        if(i%n==0){
            break; 
        }
    }
    if(i==n){
        System.out.print(i+","); 
    }
}

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

您可以将if语句更改为

if(i < 10000){...}

为:

if(i < 10001){...}

或:

if(i <= 10000){...}

答案 1 :(得分:0)

我修好了我所要做的就是切换

if(i<10000){
One(i+1);
}

到底部而不是在顶部。