#include <iostream>
using namespace std;
#define MAX 25
int primes[MAX] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
int possSums[100];
int possSumCount = 0;
int sumAcheived[100];
bool isPrime(int n) {
for(int i = 0; i < MAX; i++)
if(primes[i] == n) return true;
return false;
}
bool canBeSumOfPrimes(int n) {
for(int i = 2; i < n - 1; i++)
if(isPrime(i) && isPrime(n - i)) return true;
return false;
}
bool isPossSum(int n) {
for(int i = 0; i < possSumCount; i++)
if(possSums[i] == n) return true;
return false;
}
int main() {
for(int i = 5; i < 100; i++)
if(!canBeSumOfPrimes(i)) possSums[possSumCount++] = i;
for(int i = 5; i < 2500; i++) {
int psCount = 0, ps1 = 0, ps2 = 0;
for(int j = 1; j*j <= i; j++) {
if(i % j == 0) {
if(isPossSum(j + (i/j))) {
ps1 = j;
ps2 = i/j;
psCount++;
}
}
}
if(psCount == 1) sumAcheived[ps1 + ps2]++;
}
for(int i = 0; i < 100; i++) {
if(sumAcheived[i] == 1) {
cout << "Sum = " << i << endl;
break;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBNQVggMjUKCmludCBwcmltZXNbTUFYXSA9IHsyLCAzLCA1LCA3LCAxMSwgMTMsIDE3LCAxOSwgMjMsIDI5LCAzMSwgMzcsIDQxLCA0MywgNDcsIDUzLCA1OSwgNjEsIDY3LCA3MSwgNzMsIDc5LCA4MywgODksIDk3fTsKaW50IHBvc3NTdW1zWzEwMF07CmludCBwb3NzU3VtQ291bnQgPSAwOwoKaW50IHN1bUFjaGVpdmVkWzEwMF07Cgpib29sIGlzUHJpbWUoaW50IG4pIHsKCWZvcihpbnQgaSA9IDA7IGkgPCBNQVg7IGkrKykKCQlpZihwcmltZXNbaV0gPT0gbikgcmV0dXJuIHRydWU7CgkJCglyZXR1cm4gZmFsc2U7Cn0KCmJvb2wgY2FuQmVTdW1PZlByaW1lcyhpbnQgbikgewoJZm9yKGludCBpID0gMjsgaSA8IG4gLSAxOyBpKyspCgkJaWYoaXNQcmltZShpKSAmJiBpc1ByaW1lKG4gLSBpKSkgcmV0dXJuIHRydWU7CgkKCXJldHVybiBmYWxzZTsKfQoKYm9vbCBpc1Bvc3NTdW0oaW50IG4pIHsKCWZvcihpbnQgaSA9IDA7IGkgPCBwb3NzU3VtQ291bnQ7IGkrKykKCQlpZihwb3NzU3Vtc1tpXSA9PSBuKSByZXR1cm4gdHJ1ZTsKCQkKCXJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKSB7CgkKCWZvcihpbnQgaSA9IDU7IGkgPCAxMDA7IGkrKykgCgkJaWYoIWNhbkJlU3VtT2ZQcmltZXMoaSkpIHBvc3NTdW1zW3Bvc3NTdW1Db3VudCsrXSA9IGk7CgkKCQoJZm9yKGludCBpID0gNTsgaSA8IDI1MDA7IGkrKykgewoJCWludCBwc0NvdW50ID0gMCwgcHMxID0gMCwgcHMyID0gMDsKCQlmb3IoaW50IGogPSAxOyBqKmogPD0gaTsgaisrKSB7CgkJCWlmKGkgJSBqID09IDApIHsKCQkJCWlmKGlzUG9zc1N1bShqICsgKGkvaikpKSB7CgkJCQkJcHMxID0gajsKCQkJCQlwczIgPSBpL2o7CgkJCQkJcHNDb3VudCsrOwoJCQkJfQoJCQl9CgkJfQoJCQoJCWlmKHBzQ291bnQgPT0gMSkgc3VtQWNoZWl2ZWRbcHMxICsgcHMyXSsrOwoJfQoKCWZvcihpbnQgaSA9IDA7IGkgPCAxMDA7IGkrKykgewoJCWlmKHN1bUFjaGVpdmVkW2ldID09IDEpIHsKCQkJY291dCA8PCAiU3VtID0gIiA8PCBpIDw8IGVuZGw7CgkJCWJyZWFrOwoJCX0KCX0KCglyZXR1cm4gMDsKfQ==