首先要先了解质数的概念:
一个大于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