首先要先了解质数的概念:
一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,也称为素数
(规定:1既不是质数,也不是余数)
使用两个方法来解决这个问题:
方法一:暴力迭代法
import java.util.Scanner;
public class demo2 {public static void main(String[] args) {try(Scanner input = new Scanner(System.in)){int n = input.nextInt();boolean ret = isPrime1(n);System.out.println(ret);}}//暴力迭代法public static boolean isPrime1(int number) {if(number <= 1) {return false;}for(int i = 2;i < number; i++) {if(number % i == 0) {return false;}}return true;}
}
运行结果:
97
true
方法二:平方根 (输出1-100之间的所有质数)
数学定理:如果一个数n不是质数,则n=x*y,
并且同时满足:x<= sqrt(n)y >= sqrt(n)
例如:100=2*50=4*25 =5*20 = 10*10
public class demo2 {public static void main(String[] args) {for(int i = 1;i <= 100;i++) {if(isPrime2(i)) {System.out.printf("%d\t",i);}}}//平方根public static boolean isPrime2(int number) {if(number <= 1) {return false;}for(int i = 2;i <=Math.sqrt(number);i++) {if(number % i == 0) {return false;}}return true;}
}
运行结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97