using System.Collections.Generic;
namespace CallaghanDev.Fun.ProjectEuler
public static Problem87 obj = new Problem87();
public static void Main() {
const int limit = 50000000;
var primes = GeneratePrimesUnder(Math.Sqrt(limit));
HashSet<int> numbers = new HashSet<int>();
for (int i = 0; i < primes.Count; i++)
double primeSquare = Math.Pow(primes[i], 2);
if (primeSquare >= limit) break;
for (int j = 0; j < primes.Count; j++)
double primeCube = Math.Pow(primes[j], 3);
if (primeSquare + primeCube >= limit) break;
for (int k = 0; k < primes.Count; k++)
double primeFourth = Math.Pow(primes[k], 4);
double sum = primeSquare + primeCube + primeFourth;
Console.WriteLine(numbers.Count);
List<int> GeneratePrimesUnder(double limit)
bool[] isPrime = Enumerable.Repeat(true, (int)limit + 1).ToArray();
var primes = new List<int>();
for (int p = 2; p <= limit; p++)
for (int multiple = p * 2; multiple <= limit; multiple += p)
isPrime[multiple] = false;