线性筛选法求素数

import java.util.Scanner;

public class Main{
    
    public static int prime(int n) {
        
        if(n == 0)
            return -1;
        int[] a = new int[n + 1];
        int[] p = new int[n];
        int index = 0;
        for(int i = 2; i < n; i++) {
            
            if(a[i] == 0){
                
                p[index ++] = i;
                System.out.print(i + " ");
            }
                
            for(int j = 0; j < index && i * p[j] < n; j++) {
                
                a[i * p[j]] = 1;
                if(i % p[j] == 0)
                    break;
            }
        }
        return index;
    }
    public static void main(String[] args) {
        
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int count = prime(n);
        System.out.println(count);
    }
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 素数,就是只能被自己和一整除的数。在程序设计时很多时候都会涉及到素数的求法,而我也恰好也又一次遇到这个问题。所以在...
    原来不语阅读 1,312评论 0赞 1
  • 使用筛法求N以内的素数,从2开始,不断剔除2的倍数,然后从剩下的数字中,选择最小的数3(这个数一定会是素数),然后...
    Jiafu阅读 2,771评论 0赞 0
  • 筛法描述: 把 2 到 n 中所有的数列出来, 然后从 2 开始, 先划掉 n 内所有 2 的倍数, 然后每次从下...
    tingshuo123阅读 1,623评论 0赞 0
  • 题目: (●ˇ∀ˇ●)嘿嘿 看到这道题马上想到了打表,结果是懵逼的 打表代码(误): OJ的显示是:Runtime...
    1QzUPm_09F阅读 598评论 0赞 0
  • 事件相关功能函数,使用直接调取即可;事件绑定 事件解绑 获取事件对象 获取事件目标元素 阻止默认事件---->注意...
    小雞雞炖蘑菇阅读 300评论 0赞 0

友情链接更多精彩内容