关于#java#的问题,如何解决?

import java.util.Scanner;
 public class Main {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("请输入一个整数");
     int number = sc.nextInt();
     boolean flag = true;   //ture:是质数。false:不是质数
    for (int i = 2; i <= number-1; i++) {
          if (number % i == 0 || number == 1) {
             flag = false;
     }
}
 if(flag){
    System.out.println(number + "是质数");
    } else {
       System.out.println(number + "不是质数");
   }
        }
    }

img


哪里有问题?谢谢大家指正!

当 number <3的时候都不会进入这个for循环,flag还是true。

1、问题:你的i的值是2,但是for循环判断条件是i<=number-1, 可以知道你输入的值为1和2都是不会进入for循环的,所以flag的值不变。
2、解决:可以多加if判断输入的值是1和2或是其他情况,如果是1和2或其他直接输出结果,否则进入循环判断是否是质数。