zoukankan      html  css  js  c++  java
  • 判断素数

    素数又称质数,是除1和本身之外不能被其他数整除的一类数。

    1既不是素数,也不是合数。

    素数的判断

    要判断一个数是否为素数,要判断2~n-1,能否整除n,只要出现能整除的数,就判断为非素数。

    此方法为保险方法:

    bool isPrime(int n){
        if(n==1)return false;
        int sqr=(int)sqrt(n*1.0);//sqrt的参数为浮点数,乘1.0使之变为浮点数,再进行强转
        for(int i=0;i<=sqr;i++){
            if(n%i==0)return false;
        }
        return true;
    }
    

    此方法为简单方法:

    bool isPrime(int n){
        if(n==1)return false;
        for(int i=0;i*i<n;i++){
            if(n%i==0)return false;
        }
        return true;
    }
    

    //求1~100里的素数

    埃式筛法

    int prime[100];
    int num=0;
    bool hashTable[100]={0};
    void Find_Prime(){
        for(int i=2;i<100;i++){//第一个素数是2
            if(hashTable[i]==false){//如果当前数没有被筛选出去
                prime[num++]=i;//将此数保存入用来存储素数的数组中
                for(int j=i+i;j<100;j+=i){//将当前数的倍数筛选出去
                    hashTable[j]=true;
                }
            }
        }
    }
    

    注意

    1. 1不是素数
    2. 素数表长至少比n大1
  • 相关阅读:
    CentOS_关机与重启命令详解
    去除ArrayList重复的对象
    单项设计模式
    死循环的应用
    java学习心得-面向对象与面向过程
    计算机使用个人经验及日常维护
    linux操作系统简介
    集合
    项目学习4
    周末总结
  • 原文地址:https://www.cnblogs.com/hebust/p/9398423.html
Copyright © 2011-2022 走看看