输出第N个素数

输出第N个素数

复制代码
public class FindNthPrime
{
    public static void main(String[] args){
        int N = Integer.parseInt(args[0]); //要求输出第 N 个素数
        int[] PrimesVector = new int[N]; // 存储已经找到的素数
        PrimesVector[0] = 2; //第一个素数是2
        int CntPrime = 1; //目前找到的素数的数目是1
        for(int i = 3; CntPrime < N; i++)
        {
            boolean isPrime = true;
            // 因为非素数可以拆成素数的乘积,所以只需要考虑已经找到的素数
            for (int j = 0; j < CntPrime && PrimesVector[j]*PrimesVector[j] <= i; j++) 
            {
                if ( i % PrimesVector[j] == 0)
                {
                    isPrime = false;
                    break; //跳出循环
                }
            }
            if (isPrime)
            {
                CntPrime++;
                PrimesVector[CntPrime-1] = i;
            }
        }       
        System.out.println(" The " + N + "th prime is " + PrimesVector[N-1]);
    }
}
复制代码

测试结果

posted @   hopskin1  阅读(1263)  评论(0)    收藏  举报
编辑推荐:
· 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
· 记一次 .NET某旅行社酒店管理系统 卡死分析
· 长文讲解 MCP 和案例实战
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
阅读排行:
· 使用TypeScript开发微信小程序(云开发)-入门篇
· 没几个人需要了解的JDK知识,我却花了3天时间研究
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 管理100个小程序-很难吗
· 在SqlSugar的开发框架中增加对低代码EAV模型(实体-属性-值)的WebAPI实现支持
点击右上角即可分享
微信分享提示