public static int[] SearchPrimesUseBitArrayGaijin(int min, int max) { ListMy <int> tempInts = new ListMy <int>(); BitArrayMy bitArrayMy = new BitArrayMy(max); bitArrayMy.SetAll(true); bitArrayMy.Set(0, false); bitArrayMy.Set(1, false); int upper = (int)Math.Sqrt(max); for (int i = 2; i < upper + 1; i++) { for (int j = i + 1; j < max; j++) { if (bitArrayMy.Get(j) && j % i == 0) { bitArrayMy.Set(j, false); } } } for (int i = min; i < max; i++) { if (bitArrayMy.Get(i)) { tempInts.Add(i); } } return(tempInts.ToArray()); }
public BitArrayMy Clone() { BitArrayMy temp = new BitArrayMy(Count); for (int i = 0; i < Count; i++) { temp.Set(i, Get(i)); } return(temp); }
public BitArrayMy And(BitArrayMy bitArrayMy) { BitArrayMy temp = new BitArrayMy(Count); for (int i = 0; i < Count; i++) { temp.Set(i, Get(i) & bitArrayMy.Get(i)); } return(temp); }