public static void Main()
for(int i = 100000;i <= 999999;i++)
if(!IsPrime(i)) continue;
var stepsUntilPalindrome = GetStepsUntilPalindrome(i);
if(stepsUntilPalindrome == 64)
public static int GetStepsUntilPalindrome(int n)
while(!IsPalindrome(current) && count < 65)
current = current + GetReverseNumber(current);
public static bool IsPalindrome(BigInteger n)
return GetReverseNumber(n) == n;
public static BigInteger GetReverseNumber(BigInteger n)
return BigInteger.Parse(new string(n.ToString().Reverse().ToArray()));
public static bool IsPrime(int n)
for (int i = 2; i <= Math.Sqrt(n); i++)