static public void GenerateKeys(out long[] V, out double[] S, out long N)
        {
            int P, Q;
            SortedSet <long> Vi;

            do
            {
                ReshetoEratosfena(out P, out Q);
                N = P * Q;

                Vi = new SortedSet <long>();
                long X = 1;
                do
                {
                    X++;
                    if (EuclidIsNOD1((long)Math.Pow(X, 2) % N, N))
                    {
                        Vi.Add((long)Math.Pow(X, 2) % N);
                    }
                }while (X < N);
            }while (Vi.Count == 1);
            if (Vi.Count > 10000)
            {
                var ArrTmp = Vi.ToArray();
                Vi = new SortedSet <long>();
                for (var i = 1; i < 10000; i++)
                {
                    Vi.Add(ArrTmp[i]);
                }
            }
            var  VArr    = new List <long>();
            var  Vminus1 = new List <long>();
            long Tmp;
            var  Rnd = new Random();
            var  M   = (P - 1) * (Q - 1);

            for (var i = 0; i < Vi.Count; i++)
            {
                var VTmp       = Vi.ToArray()[i];
                var Vminus1Tmp = FastPowFunc(VTmp, M - 1, N);
                if (long.TryParse(Convert.ToString(Math.Sqrt(Vminus1Tmp)), out Tmp))
                {
                    VArr.Add(VTmp);
                    Vminus1.Add(Vminus1Tmp);
                }
            }

            S = new double[Vminus1.Count];

            var j = 0;

            foreach (var Vm1 in Vminus1)
            {
                S[j] = Math.Sqrt(Vm1) % N;
                j++;
            }

            V = VArr.ToArray();
        }
Esempio n. 2
0
        int TinhThuNhapTrongThang(ICollection <SO_GIAO_DICH> giaoDich, DateTime current, Vi viHienTai)
        {
            int count = 0;

            foreach (var gd in giaoDich)
            {
                if (gd.NGAY.Value.Month == current.Month && gd.Nhom.ID == 7 && gd.ID_VI == viHienTai.ID)
                {
                    count += gd.SO_TIEN;
                }
            }
            return(count);
        }