Project Euler 46
using System; class PE046 { static bool IsPrime(int n) { if (n == 2) return true; if (n % 2 == 0) return false; for (int i = 3; i*i <= n; i += 2) { if (n % i == 0) { return false; } } return true; } // n == prime * 2*x*x という形で表せるか static bool Calc(int n) { for (int i = 1; /* none */; i++) { int p = n - 2*i*i; if (p < 1) break; if (IsPrime(p)) { // n == prime + 2*i*i return false; } } return true; } static void Main() { for (int i = 3; /* none */; i += 2) { if (IsPrime(i)) continue; if (Calc(i)) { Console.WriteLine(i); break; } } } }