为什么这样求一百以内的素数是错的

package batman;
public class bat1 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    
    boolean isPrime=true;
    for(int a=2;a<=100;a++) {
       for(int i=2;i<=a;i++) {
         if(a%i==0)
          {
            isPrime=false;
             break;
    }
       
       }
       
    if(isPrime) {
           System.out.println(a+"true");
       }else {
           System.out.println(a+"false");

}

    }
}

}

正确的写法应该是下面这样,你的写法存在两个问题:
1、素数标志没有重置,应该每次循环的都是都先重置为true;
2、你的判断应该是<,而不是<=,因为自然数除以自身的余数肯定是0。

如有帮助,还望采纳

public static void main(String[] args) {
        // TODO Auto-generated method stub

        for (int a = 2; a <= 100; a++) {
            boolean isPrime = true;
            for (int i = 2; i < a; i++) {
                if (a % i == 0) {
                    isPrime = false;
                    break;
                }

            }

            if (isPrime) {
                System.out.println(a + "true");
            } else {
                System.out.println(a + "false");
            }

        }
    }