输出小于等于n的所有素数的个数(Java代码实现并优化)

本文探讨了素数的概念,常见的素数算法及其Java实现,并提出了作者的优化算法。通过main函数对比,展示了优化算法在时间和空间复杂度上的优势,尤其是在处理大量数据时,性能提升显著。
摘要由CSDN通过智能技术生成

1、素数是什么:

	只有1和他本身两个因数的数叫做素数,如2、3、5、7、11等等

2、常见算法思想

	(1)变量i从2到n依次判断i是否是素数,如果i是素数,则素数个数+1;
	(2)除2、3外,所有素数都是6N±1的形式;
	(3)变量j从2开始循环到sqrt(i),如果i%j==0,则i不是素数,否则最后i是素数;

3、我的算法思想

	(1)所有合数都可以分解成多个素数的乘积,如8=2*2*2;
	(2)除2、3外,所有素数都是6N±1的形式;
	(3)可以先把已知的素数保存,用j对已知的素数求余,这样循环次数会大量减少;

4、常见算法的代码实现(函数)

public long normalPrime(int n) {
   
        long startTime=System.currentTimeMillis();//记录开始时间
        if (n<2)
            return 0;
        int i,j;
        boolean isPrime=true;
        normalPrimeList.clear();
        normalPrimeList.add(2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值