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
  • 相关阅读:
    Eclipse下Tomcat插件的安装
    支付宝接口资料解读
    文件转换器服务推荐
    接吻的学问
    Web小工具推荐
    两个优秀的免费字体资源
    每年考证时间
    Visual Studio 2008 简体中文版和MSDN下载
    生活小经验
    UIScrollView and lazy loading
  • 原文地址:https://www.cnblogs.com/hebust/p/9398423.html
Copyright © 2011-2022 走看看