Exemple #1
0
        public List <BigInt> Factors()
        {
            List <BigInt> fact  = new List <BigInt>();
            BigInt        prime = 2;

            BigInt remainder;
            BigInt divided = this;
            BigInt quotent = divided.Div(prime, out remainder);

            while (remainder.IsZero)
            {
                divided = quotent;
                fact.Add(prime);
                quotent = divided.Div(prime, out remainder);
            }
            prime += 1;

            while (prime <= divided)
            {
                quotent = divided.Div(prime, out remainder);
                while (remainder.IsZero)
                {
                    divided = quotent;
                    fact.Add(prime);
                    quotent = divided.Div(prime, out remainder);
                }
                prime += 2;
            }
            return(fact);
        }