我想计算问题7欧拉项目中的第10001个素数.这就是我所做的:
int i=0;
int counter=2;
while (i<=10001){
counter++;
if (Helper.isPrime(counter))
i++;
}
Helper.println(counter);
Run Code Online (Sandbox Code Playgroud)
它正在返回,104033但正确的答案是104743.我的问题在哪里?
您的代码有三个问题:
counter为0或1,而不是2.while (i<=10001),您可以计算直到找到10002个素数.因为你也不算2,所以你需要走两步.循环测试应该是while (i<10001).Helper.isPrime方法显然将太多的数字识别为素数.它需要修复,但由于你还没有发布它的代码,所以无法说明修复它需要什么.| 归档时间: |
|
| 查看次数: |
12885 次 |
| 最近记录: |