素数生成器的算法【C# EDITION】
1public static ArrayList GeneratePrimes(int ubound)
2 {
3 BitArray flags = new BitArray(ubound + 1, true);
4 for(int i = 2; i <= (int)Math.Sqrt(ubound); i++)
5 {
6 if(flags[i])
7 {
8 for(int j = i; j * i <= ubound; j++)
9 {
10 flags[i * j] = false;
11 }
12 }
13 }
14
15 ArrayList primes = new ArrayList();
16 for(int i = 2; i <= ubound; i++)
17 {
18 if(flags[i])
19 primes.Add(i);
20 }
21 return primes;
22 }
2 {
3 BitArray flags = new BitArray(ubound + 1, true);
4 for(int i = 2; i <= (int)Math.Sqrt(ubound); i++)
5 {
6 if(flags[i])
7 {
8 for(int j = i; j * i <= ubound; j++)
9 {
10 flags[i * j] = false;
11 }
12 }
13 }
14
15 ArrayList primes = new ArrayList();
16 for(int i = 2; i <= ubound; i++)
17 {
18 if(flags[i])
19 primes.Add(i);
20 }
21 return primes;
22 }
作者: 三角猫
http://www.zu14.cn/
转载请保留此信息