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());
        }
Пример #2
0
        public BitArrayMy Clone()
        {
            BitArrayMy temp = new BitArrayMy(Count);

            for (int i = 0; i < Count; i++)
            {
                temp.Set(i, Get(i));
            }
            return(temp);
        }
Пример #3
0
        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);
        }