数论-素数

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

有多种方法!!

其一,可以按照定义对比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来表示.  当然它们本身也未必就一定是素数了.也就是一个必要条件而已.

posted @ 2020-03-05 22:25  SSXFC  阅读(141)  评论(0编辑  收藏  举报