Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }