题目一:给定一个数,求此范围内质数的个数,并打印其中的质数(1既不是质数也不是合数,2是最小的质数)
package exersises;
import java.util.Scanner;
public class Demo14 {
public static void main(String[] args) {
//接收用户输入的数字,判断在此范围内质数的个数
System.out.println("请输入一个整数:");
int n = (new Scanner(System.in)).nextInt();
int number = 1; //定义一个变量用于计数(2是最小的质数)
System.out.println(2); //2是最小的质数
boolean flag;
for (int i = 2; i <= n; i++) {
flag = isPrimeNumber(i);
if (flag){
number++;
System.out.println(i);
}
}
System.out.printf("%d范围内,质数的个数为%d", n, number);
}
private static boolean isPrimeNumber(int n) {
//此函数用于判断给定参数是否为质数,若是质数则返回true,反之返回false
double maxN = 1 + Math.sqrt(n);
for (int j = 2; j <= maxN; j++) {
if (n % j == 0){
return false;
}
}
return true;
}
}