数论-素数
在计算机编程中,素数的判定是很容易遇到的.那怎么判定呢?
有多种方法!!
其一,可以按照定义对比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来表示. 当然它们本身也未必就一定是素数了.也就是一个必要条件而已.