Beispiel #1
0
        Dictionary <int, int> Factorize(int n)
        {
            Dictionary <int, int> ret = new Dictionary <int, int>();

            P.CalcPrimesUpToN((int)Math.Ceiling(Math.Sqrt(n)));
            for (int i = 0; i < P.Count; i++)
            {
                int p = P[i];
                if (p == 1)
                {
                    continue;
                }
                while (n % p == 0)
                {
                    if (ret.ContainsKey(p))
                    {
                        ret[p]++;
                    }
                    else
                    {
                        ret[p] = 1;
                    }
                    n /= p;
                }
            }
            return(ret);
        }
Beispiel #2
0
        public override void Run()
        {
            long n = 600851475143;

            P.CalcPrimesUpToN(775123);
            for (int i = 0; i < P.Count; i++)
            {
                if ((P[i] < 775123) && (n % (long)P[i] == 0) && P[i] > Result)
                {
                    Result = P[i];
                }
            }
        }