import java.util.Scanner;
public class Test1Prime {
public static void main(String[] args) {
System.out.print("输入整数n,求n内质数的数量:");
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
//n传递到prime()方法,求质数数量
int r=prime(n);
System.out.println("有"+r+"个质数");
sc.close();
}
private static int prime(int n) {
if(n<2){
return 0;
}
//计数变量
int c=0;
//2~n范围内找质数
outer:
for(int i=2;i<=n;i++)
{
//如果是2,计数直接增加,并跳到下一个值
if(i==2)
{
c++;
continue;
}
//i是否是质数
//2到小于根号i+1范围内内,能把i整除的值
double max=Math.sqrt(i)+1;
for(int j=2;j<max;j++)
{
//i能被j整除
if(i%j==0)
{
//i不是质数,直接跳到i++,判断下一个i值是否是质数
continue outer;
}
}
//i是质数,计数增加
c++;
}
return c;
}
}
运行结果
输入整数n,求n内质数的数量:3
有2个质数