从控制台接收一个正整数,判断该数字是否为质数

质数(质数是指在大于1的自然数中,除了1和它本身以外不再用其他因数的自然数)

因数是什么?

3 * 5 = 15
3和5都是15的因数。

2 3 4 5 6 7 中:2 3 5 7都是质数。

  1. public class Homework04{
  2. public static void main(String[] args){
  3. // 从控制台接收一个正整数。
  4. java.util.Scanner s = new java.util.Scanner(System.in);
  5. System.out.print("请输入一个正整数:");
  6. int num = s.nextInt(); // 假设输入的是8
  7. // 判断该数字是否为质数
  8. // 怎么判断num是不是质数
  9. // 怎么判断8是不是质数?
  10. // 思路:8除以2看看能不能整除、8除以3看看能不能整除、8除以4看看能不能整除
  11. // 一直除下,直到发现有能够整除的,表示该数一定不是质数。
  12. /*
  13. 假设输入的是7:
  14. 7 / 1 不用判断
  15. 7 / 2 需要判断
  16. 7 / 3 需要判断
  17. 7 / 4 需要判断(假设这个判断,发现可以整除,就没必要往下判断了。)
  18. 7 / 5 需要判断
  19. 7 / 6 需要判断
  20. 7 / 7 不用判断
  21. */
  22. // 可以考虑在外边准备一个布尔类型的标记。
  23. boolean zhiShu = true; // true表示是质数。
  24. for(int i = 2; i < num; i++){
  25. if(num % i == 0){
  26. //System.out.println("该数字" + num + "不是质数!");
  27. zhiShu = false;
  28. break;
  29. }
  30. }
  31. System.out.println(num + (zhiShu ? "是" : "不是") + "质数");
  32. }
  33. }