public static double Run() { Console.WriteLine("Project Euler - 27: Quadratic primes"); var r = 0d; var z = 1d; for (var a = -999; a < 1000; a++) { for (var b = -999; b < 1000; b++) { for (var n = 0; ; n++) { if (!Helpers.IsPrime(n * n + a * n + b)) { if (n > z) { r = a * b; z = n; } break; } } } } return(r); }
static bool IsTruncatablePrime(int n) { if (n % 2 == 0 || n % 10 == 5 || n % 10 == 9 || n % 10 == 1 || (n % 100) % 3 == 0 || (n % 1000) % 3 == 0 || (n % 10000) % 3 == 0) { return(false); } var s = n.ToString(); // The Reason I couldnt find a solution earlier was because I added "2" and "5" to this iist, which excludes the very valid numbers 23 and 53 if (s.Contains("0") || s.Contains("4") || s.Contains("6") || s.Contains("8")) { return(false); } foreach (var i in Truncate(n)) { if (!Helpers.IsPrime(i)) { return(false); } } return(true); }
public static double Run() { Console.WriteLine("We're just starting out baby. Project Euler - 3"); var r = 600851475143d; for (var i = 5d; i < Math.Sqrt(r); i += 2) { if (Helpers.IsPrime((int)i)) { while (r % i == 0) { r /= i; } } } return(r); }