zoukankan      html  css  js  c++  java
  • 筛选法求素数

    package 素数总结;
    
    import java.util.Arrays;
    
    /** 
     * @author wangpei 
     * @version 创建时间:2017年8月15日 下午9:16:18 
     * 求1-n间的素数个数
     * 素数:只有1和他本身两个因子的数字
     * 不包含1
     * 
     * 筛选法:若一个数是素数,则其倍数必不是素数,标记其倍数为非素数,最终得到的未被标记的即为素数
     */
    public class 求素数的个数 {
        public static void main(String[] args) {
             test1(10);
    
        }
        public static void test1(int n){
            int []flag=new int[n+1];
            Arrays.fill(flag, 0);
            flag[0]=1;
            flag[1]=1;
            for (int i = 2; i < n+1; i++) {
                if(flag[i]==0){
                    for(int j=i;i*j<n+1;j++)
                        flag[i*j]=1;
                }
    
            }
            for (int i = 0; i < n+1; i++) {
                if(flag[i]==0)
                    System.out.print(i+" ");
    
            }
    
        }
    
    }
    

    还有一种比较笨的办法就是,判断n是不是素数,判断2到根号下n是不是整除n,若存在整除的,则非素数

  • 相关阅读:
    webpack常见问题 收藏
    ES6 模块
    ES6 Class 类
    ES6 迭代器
    ES6 函数
    ES6 数组
    ES6 对象
    记一次pda(安卓)环境配置流程
    类型转换
    DOM事件
  • 原文地址:https://www.cnblogs.com/wangxiaopei/p/8551188.html
Copyright © 2011-2022 走看看