Exemplo n.º 1
0
        public long SmallestNumberDividedByAllNumbers(long UpToNumber)
        {
            long[] maxCountOfPrimNumber = new long[UpToNumber + 1];


            for (int i = 2; i <= UpToNumber; i++)
            {
                var group = Primes.GetPrimeFactorsInNumber(i).GroupBy(e => e);

                foreach (var g in group)
                {
                    if (maxCountOfPrimNumber[g.Key] < g.Count())
                    {
                        maxCountOfPrimNumber[g.Key] = g.Count();
                    }
                }
            }


            long smallestNumber = 1;

            for (int i = 2; i <= UpToNumber; i++)
            {
                for (int ii = 0; ii < maxCountOfPrimNumber[i]; ii++)
                {
                    smallestNumber *= i;
                }
            }

            return(smallestNumber);
        }
        private static List <int> ConvertToPrimeList(List <int> nrliste)
        {
            if (nrliste.Count() > 0)
            {
                List <long> liste = new List <long>();
                foreach (int item in nrliste)
                {
                    liste.AddRange(Primes.GetPrimeFactorsInNumber(item));
                }
                nrliste = liste.Select(e => (int)e).ToList();
            }

            return(nrliste);
        }
        public int GetNumberWithOneIntegerRightTriangles(int maxLengde)
        {
            Dictionary <long, long> lenDict = new Dictionary <long, long>();

            for (int n = 1; n < 1000; n++)
            {
                List <long> nPrimes = Primes.GetPrimeFactorsInNumber(primeFactors, primeDict, n);

                for (int m = n + 1; m < 1000; m++)
                {
                    //en og kun skal være par..
                    if ((m + n) % 2 == 0)
                    {
                        continue;
                    }

                    //m og n skal være coprime
                    List <long> mPrimes = Primes.GetPrimeFactorsInNumber(primeFactors, primeDict, m);
                    if (nPrimes.Any(np => m % np == 0))
                    {
                        continue;
                    }

                    //Pythagorean triangles  :https://en.wikipedia.org/wiki/Integer_triangle
                    int a      = m * m - n * n;
                    int b      = 2 * m * n;
                    int c      = m * m + n * n;
                    int lengde = a + b + c;

                    int step = lengde;
                    while (lengde <= maxLengde)
                    {
                        if (lenDict.ContainsKey(lengde))
                        {
                            lenDict[lengde] = lenDict[lengde] + 1;
                        }
                        else
                        {
                            lenDict.Add(lengde, 1);
                        }
                        // hvis a,b,c er løsning , er også 2a,2b,2c løsing ,osv...
                        lengde += step;
                    }
                } // for m
            }     // for n

            //finn antall med bare en løsning/lengde
            return(lenDict.Where(e => e.Value == 1).Count());
        }
        //hvis Numerator har felles primetall med  denominator, kan brøken reduseres..
        private int GetNoneReducableInInterval(long numeratorStart, long numeratorEnd, int denominator)
        {
            int counter = 0;

            List <long> PrimeFactorsInDenominator = Primes.GetPrimeFactorsInNumber(denominator).ToList();

            for (long numerator = numeratorStart; numerator <= numeratorEnd; numerator++)
            {
                if (!PrimeFactorsInDenominator.Any(p => numerator % p == 0))
                {
                    counter++;
                }
            }
            return(counter);
        }
 public long  Largest(long below)
 {
     return(Primes.GetPrimeFactorsInNumber(below).Max());
 }
Exemplo n.º 6
0
        public void TestPrimeIsNotPrimet(long value)
        {
            List <long> list = Primes.GetPrimeFactorsInNumber(value);

            Assert.False(Primes.IsPrime(value));
        }
Exemplo n.º 7
0
        public void TestPrimeList(long value, int len)
        {
            List <long> list = Primes.GetPrimeFactorsInNumber(value);

            Assert.Equal(len, list.Count);
        }