#include #include int prime(long long int value) { unsigned int divisor = 3; unsigned int square = divisor * divisor; if (value == 2) return 1; if (value == 3) return 1; if (!(value & 1)) return 0; /* even */ while (square < value && value % divisor) { ++divisor; square += 4 * divisor; ++divisor; } return value % divisor != 0; } int main() { int found = 0, holds=0; unsigned int n = 3; int i = 0; while (! found) { if (! prime(n)) { holds=0; if (sqrt(n-2) == (int)(sqrt(n-2))) { holds = 1; } else { for (i = 3; i < n; i+=2) { if (prime(i)) { int q = (n - i) / 2.00; if (sqrt(q) == (int)(sqrt(q))) { holds = 1; break; } } } } if (! holds) { printf("%d",n); found = 1; } } n+=2; } return 0; }