#include "common.h" #include #include const unsigned long limit = 50000000; int main(void) { unsigned long* p = primes(8000); unsigned long count = p[0]; unsigned long i2, i3, i4, counter; char* numbers = malloc(limit*sizeof(char)); memset(numbers, 0, limit); for(i2=1; i2<=count; i2++) for(i3=1; i3<=count; i3++) for(i4=1; i4<=count; i4++) { unsigned long p4 = p[i4]; unsigned long p3 = p[i3]; unsigned long p2 = p[i2]; unsigned long long result = (unsigned long long)p4*p4*p4*p4; if(result >= limit) break; result += (unsigned long long)p3*p3*p3; if(result >= limit) break; result += (unsigned long long)p2*p2; if(result >= limit) break; numbers[result] = 1; } counter = 0; for(i2=0; i2