素数指的是只能被1和它本身整除的自然数,即大于1且除了1和它本身以外没有其他因数的自然数。例如,2、3、5、7、11等都是素数,4、6、9等都不是素数。
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//创建键盘录入对象
System.out.println("请输入一个大于2的整数:");//提示输入整数范围
int i = sc.nextInt();//键盘输入整数
boolean flag = true;//标记判断是否为素数
for (int j = 2; j <= i - 1; j++) {//遍历2-->(i-1)的整数
if (i % j == 0) {//判断是否能被2-->(i-1)的整数整除,如果能被整除,执行此if内容
flag = false;
System.out.println(i + "不是一个素数");
break;
}
}
if (flag) {//如果不能被整除,执行此if内容
System.out.println(i + "是一个素数");
}
}
}
程序执行,在控制台输出效果:
请输入一个大于2的整数
11
11是一个素数
思路:判断键盘录入的数字能否被[2,键盘录入的数字-1]范围中任意一个数字整除,如果有,则代表这个数字不是素数,反之,是素数。
1.先定义一个布尔变量flag。用来标记这个这个变量是否为素数。默认为赋值为true,假设这个变量是素数
2.使用循环,获取2到这个数字-1的范围的数字
3.判断键盘输入的值 % 当前数字的。结果如果为0,则代表键盘输入的数字是当前数字的倍数。则当前键盘录入的数字不是素数。设置flag为false。同时结束循环
4.循环之外, 判断flag的值,如果是为true,则代表键盘输入的数字是素数,反之,不是素数