Sunday 12 April 2009

PROJECT EULER #29

Link to Project Euler problem 29

Consider all integer combinations of ab for 2 <= a <= 5 and 2 <= b <= 5:

22=4, 23=8, 24=16, 25=32
32=9, 33=27, 34=81, 35=243
42=16, 43=64, 44=256, 45=1024
52=25, 53=125, 54=625, 55=3125

If they are then placed in numerical order, with any repeats removed, we get the following sequence of 15 distinct terms:

4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125

How many distinct terms are in the sequence generated by ab for 2 <= a <= 100 and 2 <= b <= 100?


using System;
using System.Collections.Generic;

namespace project_euler
{
class Program
{
static void Main()
{
//Problem 29
DateTime start = DateTime.Now;
var uniques = new List<string>();
for (int a = 2; a <= 100; a++)
{
BigInt n = new BigInt(a);
for (int b = 2; b <= 100; b++)
{
n *= a;
string s = n.ToString();
if (!uniques.Contains(s))
uniques.Add(s);
}
}
Console.WriteLine(uniques.Count);
TimeSpan time = DateTime.Now - start;
Console.WriteLine("This took {0}", time);
Console.ReadKey();
}
}
}

No comments: