质数——6N±1法
生活随笔
收集整理的這篇文章主要介紹了
质数——6N±1法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
6N±1法求素數
任何一個自然數,總可以表示成為如下的形式之一:
6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)
顯然,當N≥1時,6N,6N+2,6N+3,6N+4都不是素數,只有形如6N+1和6N+5的自然數有可能是素數。所以,除了2和3之外,所有的素數都可以表示成6N±1的形式(N為自然數)。
根據上述分析,我們只對形如6 N±1的自然數進行篩選,這樣就可以大大減少篩選的次數,從而進一步提高程序的運行效率和速度。
以下代碼需要自然數大于10 。
public int[] getPrimes(int n){
int []a = new int[200];
int k=0;
int num = 5;
a[0]=1;a[1]=2;a[2]=3;a[3]=5;a[4]=7;
for(int i=3;i< p>
for(int j=0;j<2;j++){
k = 2*(i+j)-1;
if((k<n)&&k%5==0?false:k%7==0?false:true){< p>
a[num] = k;
num++;
}
}
}
return a;
}
總結
以上是生活随笔為你收集整理的质数——6N±1法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 朋友在抖音30天赚了20万!我也能么?
- 下一篇: 一文吃透PHP和HTML的嵌套写法