Friday 10 April 2009

PROJECT EULER #3

Link to Project Euler problem 3

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?

The first of the prime questions. I use the "Sieve of Eratostosthenes" to generate primes.


using System;
using System.Collections.Generic;

namespace ProjectEuler
{
class Program
{
static void Main(string[] args)
{
//Problem 3
List<int> primes = new List<int> {2, 3};
long largeNumber = 600851475143;
int largestFactor = 0;
DateTime start = DateTime.Now;
for (int i = 5; i < Math.Sqrt(largeNumber); i += 2)
{
if (i % 3 != 0)
{
primes.Add(i);
foreach (int j in primes)
{
if (i % j == 0 && i != j)
{
primes.Remove(i);
break;
}
}
}
}
foreach(int k in primes)
{
if (largeNumber % k == 0)
largestFactor = k;
}
TimeSpan time = DateTime.Now - start;
Console.WriteLine("{0}\nThis took {1}", largestFactor,time);
Console.ReadKey();
}
}
}

No comments: