import java.util.Scanner;
public class Sushu{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
boolean flag =true;//1、这里是为了让do、while循环成立
do{
System.out.println("请输入一个数");
int n = sc.nextInt();
if(n<0){ //2、判断是否为正整数,如果不是继续循环输入数字
System.out.println("输入有误,请输入正整数");
}else{ //3、这里开始判断是否为素数
int m = 0; //4、定义m为:输入数字除了自身和1之外被整除的次数
for(int i = 2; i < n ; i++){
if(n % i==0){
m++;
}
}
if(m == 0){ //5、说明没有其他数可以被整除
System.out.println(n+"是素数");
flag =false; //6、为了跳出while循环
}else{
System.out.println(n+"不是素数");
flag =false; //7、同6
}
}
}while(flag);
}
}
分割线:
更新代码,更加简洁:
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num;
while(true){ //可以通过这个死循环,当输入数字错误的时候可以继续输入
System.out.println("请输入正整数");
num = sc.nextInt();
if(num < 1){
System.out.println("输入有误");
}else if(num == 1){
System.out.println(num+"不是素数");
break;
}else{
//从2到输入的数前一位
for(int i= 2;i < num;i++){
//能被整除
if(num%i == 0){
System.out.println(num+"不是素数");
return;
}
}
System.out.println(num+"是素数");
break;
}
}
}