zoukankan      html  css  js  c++  java
  • 数论-素数

    在计算机编程中,素数的判定是很容易遇到的.那怎么判定呢?

    有多种方法!!

    其一,可以按照定义对比n小的所有数进行枚举,看看是否能够整除?

    其二,可以以sqrt(n)为分界点执行以上判定步骤!

    其三,可以筛法判定,具体就是对每一个数,把它的所有倍数都给去除,因为 它的倍数可以被它整除!

    具体操作是:

    1 int vis[10000];
    2 memset--->vis;
    3 for(int i=2;i<=n;i++)
    4     {
    5         if(vis[i]==0) for(int j=i*2;j<=n;j+=i) vis[j]=1;
    6     }
    7 for(int i=2;i<=n;i++) if(vis[i]==0) cout<<i<<" ";

    其四,任何数都可以表示成6n+1,2,3,4,5,6...     所以我们可以据此推断,素数只可能用6n+1以及6n+5来表示.  当然它们本身也未必就一定是素数了.也就是一个必要条件而已.

  • 相关阅读:
    [FJOI2007]轮状病毒
    [SHOI2013]发微博
    ATCODER ABC 099
    [HEOI2015]兔子与樱花
    [TJOI2017]可乐
    [TJOI2015]线性代数
    [Ceoi2008]order
    [CTSC2008]祭祀river
    [POI2009]Lyz
    数列分块(数据结构)学习笔记
  • 原文地址:https://www.cnblogs.com/zww-kjj/p/12394131.html
Copyright © 2011-2022 走看看