从控制台接收一个正整数,判断该数字是否为质数
质数(质数是指在大于1的自然数中,除了1和它本身以外不再用其他因数的自然数)
因数是什么?
3 * 5 = 15
3和5都是15的因数。
2 3 4 5 6 7 中:2 3 5 7都是质数。
public class Homework04{
public static void main(String[] args){
// 从控制台接收一个正整数。
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入一个正整数:");
int num = s.nextInt(); // 假设输入的是8
// 判断该数字是否为质数
// 怎么判断num是不是质数
// 怎么判断8是不是质数?
// 思路:8除以2看看能不能整除、8除以3看看能不能整除、8除以4看看能不能整除
// 一直除下,直到发现有能够整除的,表示该数一定不是质数。
/*
假设输入的是7:
7 / 1 不用判断
7 / 2 需要判断
7 / 3 需要判断
7 / 4 需要判断(假设这个判断,发现可以整除,就没必要往下判断了。)
7 / 5 需要判断
7 / 6 需要判断
7 / 7 不用判断
*/
// 可以考虑在外边准备一个布尔类型的标记。
boolean zhiShu = true; // true表示是质数。
for(int i = 2; i < num; i++){
if(num % i == 0){
//System.out.println("该数字" + num + "不是质数!");
zhiShu = false;
break;
}
}
System.out.println(num + (zhiShu ? "是" : "不是") + "质数");
}
}