public override long Solve() { var bRange = Primes.CalculatePrimesBelow(MAX_COEFF); var aRange = Enumerable.Range(-999, 1999); long maxPrimesCount = 0; long maxACoeff = 0; long maxBCoeff = 0; foreach (var b in bRange) { foreach (var a in aRange) { long n = 0; while (Primes.IsPrime((n * n) + (a * n) + b)) { n++; } if (n > maxPrimesCount) { maxPrimesCount = n; maxACoeff = a; maxBCoeff = b; } } } return(maxACoeff * maxBCoeff); }
public override long Solve() { for (int i = 9; i > 0; i--) { var pandigitals = Pandigitals.Generate(i).OrderByDescending(p => p); foreach (var pandigital in pandigitals) { if (Primes.IsPrime(pandigital)) { return(pandigital); } } } return(0); }
public static long LargestPrimeFactor(long number) { //start at sqrt of number. var limit = (long)Math.Sqrt(number); long largestPrimeFactor = 0; for (long i = limit; i > 0; i--) { if (number % i == 0 && Primes.IsPrime(i)) { largestPrimeFactor = i; break; } } return(largestPrimeFactor); }
public override long Solve() { int currentCornerNumber = 1; int sideLength = 1; int spiral = 1; while (RatioOfPrimes >= 0.1M || numberOfPrimes == 0) { for (int i = 1; i <= 4; i++) { var primetoCheck = currentCornerNumber += 2 * spiral; if (Primes.IsPrime(primetoCheck)) { numberOfPrimes++; } numberOfCornerNumbers++; } sideLength += 2; spiral++; } return(sideLength); }
public override long Solve() { for (int number = 1490; number < 9999; number++) { var perms = Permutations.Generate(number).Where(p => p.ToString().Length == 4); var permsList = new List <long>(); perms.ToList().ForEach(p => { if (Primes.IsPrime(p)) { permsList.Add(p); } }); if (permsList.Count >= 4) { var sequence = FindSequence(permsList); if (sequence.Count > 0 && !sequence.Contains(1487)) { return(long.Parse(sequence[0].ToString() + sequence[1].ToString() + sequence[2].ToString())); } } } throw new Exception("Cannot find sequence....you messed it up"); }
public override long Solve() { long smallestSum = 0; var primes = Primes.CalculatePrimesBelow(10000); foreach (var first in primes) { foreach (var second in primes) { if (second <= first) { continue; } if (Primes.IsPrime(Concat(first, second)) && Primes.IsPrime(Concat(second, first))) { foreach (var third in primes) { if (third <= second) { continue; } if (Primes.IsPrime(Concat(first, third)) && Primes.IsPrime(Concat(third, first)) && Primes.IsPrime(Concat(second, third)) && Primes.IsPrime(Concat(third, second))) { foreach (var fourth in primes) { if (fourth <= third) { continue; } if (Primes.IsPrime(Concat(first, fourth)) && Primes.IsPrime(Concat(fourth, first)) && Primes.IsPrime(Concat(second, fourth)) && Primes.IsPrime(Concat(fourth, second)) && Primes.IsPrime(Concat(third, fourth)) && Primes.IsPrime(Concat(fourth, third))) { foreach (var fifth in primes) { if (fifth <= fourth) { continue; } if (Primes.IsPrime(Concat(first, fifth)) && Primes.IsPrime(Concat(fifth, first)) && Primes.IsPrime(Concat(second, fifth)) && Primes.IsPrime(Concat(fifth, second)) && Primes.IsPrime(Concat(third, fifth)) && Primes.IsPrime(Concat(fifth, third)) && Primes.IsPrime(Concat(fourth, fifth)) && Primes.IsPrime(Concat(fifth, fourth))) { Console.WriteLine("1: {0} 2: {1} 3: {2} 4: {3} 5: {4}", first, second, third, fourth, fifth); var sum = new List <long> { first, second, third, fourth, fifth }.Sum(); if (sum < smallestSum || smallestSum == 0) { smallestSum = sum; } } } } } } } } } } return(smallestSum); }