I'm a professional game developer from Wakefield, England, working for TickTock Games.
I'm a married father of five and I am also the director and lead programmer of Retroburn Ltd.
Martin 'Bytrix' Caine
Father. C++ Games Programmer. Cyclist. Guitarist.
Monday, May 31st 2010 / Web

# Project Euler - problem 4

Another pretty easy one from Project Euler, puzzle 4 simply required building an array of values based on calculations and sorting them to find the highest values:

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99.

Find the largest palindrome made from the product of two 3-digit numbers.

I basically had two variables looping from 999 to 100, multiplying them together for each value. I then converted the value to a string and reversed it, if the reversed string equals the original string the number is palindromic so I added it to an array (making sure to add the number and not the string or ordering the array would work alphabetically rather than numerically).

I then reversed the order of the array and output the first element:

``` <?/*******************************************************************  ProjectEuler.net  *  Problem 4  *  2010-05-31  *  Martin Caine *******************************************************************///create an array to store the results\$numbers = array();// loop from 999 to 100for( \$x=999; \$x>99; \$x-- ){  // loop the second value from 999 to 100  for( \$y=999; \$y>99; \$y-- )  {    \$number = \$x * \$y;    // test if the number is palindromic    if( strval( \$number ) == strrev( strval( \$number ) ) )    {      // if it's not already in our array, add it now      if( !in_array( \$number, \$numbers ) )      {        \$numbers[] = \$number;      }    }  }}// sort the numbers in reverse orderrsort( \$numbers );// output the highest numberecho \$numbers;?> ```     