首页 > 为什么运行程序会卡死

为什么运行程序会卡死

才学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<isPrime.length;i++)
        {
            isPrime[i]=true;
        }
        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;
                }
            }
        }
        for(int i=0;i<=max;i++)
        {
            if(isPrime[i])
                System.out.print(i+",");
        }
        
    }
}

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的,因此死循环了。


楼上已经给出答案了,碰到这种问题首先应该debug

【热门文章】
【热门文章】