注:1.判断数字的大小,小于2,等于2,大于2的情况
2.从后往前找
3.判断数字是否为质数的时候,用math.sqrt()方法提高算法计算时间
import java.util.Scanner;
/**
* 找出不大于n的质数
*
* @author hf
*
*/
public class Blogs2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字n");
int n = scanner.nextInt();
// 如果n小于2,则没有质数
if (n < 2) {
System.out.println("不存在质数");
}
// 从后往前循环
for (int i = n; i >= 2; i--) {
// 如果n=2的时候,质数为2
if (i == 2) {
System.out.println("最大质数是2");
} else {
// 得到第一个质数后,直接打印并跳出循环
if (isPrimeNum(i)) {
System.out.println("不大于" + n + "的最大质数是" + i);
break;
} else {
continue;
}
}
}
scanner.close();
}
/**
* 判断一个数是否是质数
*
* @param i
* @return
*/
public static boolean isPrimeNum(int i) {
for (int j = 2; j < (int) (Math.sqrt(i) + 1); j++) {
if (i % j == 0) {
return false;
}
}
return true;
}
}