Saturday 11 April 2009

PROJECT EULER #27

Link to Project Euler problem 27

Euler published the remarkable quadratic formula:

n² + n + 41

It turns out that the formula will produce 40 primes for the consecutive values n = 0 to 39. However, when n = 40, 402 + 40 + 41 = 40(40 + 1) + 41 is divisible by 41, and certainly when n = 41, 41² + 41 + 41 is clearly divisible by 41.

Using computers, the incredible formula n² - 79n + 1601 was discovered, which produces 80 primes for the consecutive values n = 0 to 79. The product of the coefficients, -79 and 1601, is -126479.

Considering quadratics of the form:

n² + an + b, where a < 1000 and b < 1000

where n is the modulus/absolute value of n
e.g. 11 = 11 and -4 = 4

Find the product of the coefficients, a and b, for the quadratic expression that produces the maximum number of primes for consecutive values of n, starting with n = 0.

using System;

namespace project_euler
{
class Program
{
static void Main()
{
//Problem 27
DateTime start = DateTime.Now;
int result = 0, max = 0;
for (int i = -999; i < 1000; i++)
{
for (int j = -999; j < 1000; j++)
{
int n = 0, number = 0;
while (true)
{
number = n*n + i*n + j;
if (!IsPrime(number))
break;
n++;
}
if (n>max)
{
max = n;
result = i*j;
}
}
}
Console.WriteLine(result);
TimeSpan time = DateTime.Now - start;
Console.WriteLine("This took {0}", time);
Console.ReadKey();
}
public static bool IsPrime(int n)
{
if (n < 2)
return false;
if (n == 2)
return true;
for (long i = 2; i <= Math.Sqrt(n); i++)
if (n%i == 0)
return false;
return true;
}
}
}

No comments: