求质数——for循环

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个质数
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容