1
public 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

4

5



6

7



8

9



10

11

12

13

14

15

16

17



18

19

20

21

22
