才学java,写了求素数的小程序,直接卡死。
package Isprime; public class Isprime { public static void main(String[] args) { int max=10000; boolean [] isPrime=new boolean [max+1]; for(int i = 0;i
楼上已经给出答案了,碰到这种问题首先应该debug
for (int i = 0; i < Math.sqrt(max); i++) { if (isPrime[i]) { for (int j = i * i; j <= max; j += 2 * i) { isPrime[j] = false; } } }
当i等于0时候,j也为0,j += 2*i
永远为0,因此j永远是<=max的,因此死循环了。