Java 计算第10001素数

Java 计算第10001素数,java,Java,我想计算问题中的第10001个素数。这就是我所做的: int i=0; int counter=2; while (i<=10001){ counter++; if (Helper.isPrime(counter)) i++; } Helper.println(counter); inti=0; int计数器=2; 而(i正确版本 int i=0; int counter=1; // chnage initial value of counter whil

我想计算问题中的第10001个素数。这就是我所做的:

int i=0;
int counter=2;
while (i<=10001){
    counter++;
    if (Helper.isPrime(counter))
        i++;
}
Helper.println(counter);
inti=0;
int计数器=2;

而(i正确版本

int i=0;
int counter=1; // chnage initial value of counter
while (i<10001){ // change terminating condition
    counter++;
    if (Helper.isPrime(counter))
        i++;
}
Helper.println(counter);
11是第二个素数,不是吗

问题:

  • 为什么计数器以2开头
  • 回路的终端条件,evn,如果 找到了号码,我们没有终止

  • 您的代码有三个问题:

  • 您的代码没有测试2是否为素数,因此您的计数中缺少了素数。您应该将
    计数器
    初始化为0或1,而不是2
  • 使用
    while(itry

    int find=10001;
    int计数器=1;
    int currentNumber=2;
    
    虽然(计数器调试器!请学习使用一个。您能发布问题吗?我们不太喜欢跟踪不必要的外部链接。您做了什么来找出错误?您确定问题不在于
    帮助程序。iPrime
    ?发布代码说明您没有计算第一个素数,
    2
    。您确定这是正确的答案吗r?我认为您不理解这个问题。对不起,如果我提到的两个问题得到纠正,即计数器以1而不是2开始,终止条件从I更改
    i=0, counter  =3, is 3 prime yes i=1
    i=1  counter = 4 is 4 prime No i =1
    i=1 counter = 5 is 5 prime Yes i=2
    i=2 counter =6 is 6 prime No i=2
    i=2 counter =7 is 7 prime yes i=3
    i=3 counter =8 is 8 prime no i=3
    i=3 counter = 9 is 9 prime no i=3
    i=3 counter =10 is 10 prime no i=3
    i=3 counter =11 is 11 prime yes i=4
    loop terminates
    ans: 11
    
       int find=10001;
       int counter =1;
       int currentNumber=2;
       while (counter <= find){
           if(Helper.isPrime(currentNumber)){
               counter++;              
           }
           currentNumber++;
       }
        System.out.println(currentNumber-1);