/*
/Christian Goldbach a fost un matematician celebru. S-a nascut
la 18 martie 1690 la Konigsberg, Prusia (astazi Kalinsgrad, Rusia) si a murit
la 20 noiembrie 1764 in Moscova. El a studiat dreptul si l-a preocupat, de asemenea,
de matematicam in special de teoria numerelor. Marginal, s-a mai interesat de domenii
ca sumele infinite, teoria curbelor, teoria ecuatiilor. El a calatorit mult in Europa si a avut
discutii fructuoase cu matematicieni celebri, precum Leibniz, Bernoulli, de Moivre, Hermann. O martie parte
din munca sa se reflecta in corespondenta cu Euler. Aceasta corespondenta a durat
aproape 20 de ani si reprezinta unul dintre cele mai importante documente stiintifice din secolul
al XVIII - lea. A lucrat ca profesor de matematica si istoric la noua
infiinta academie din St. Petersburg si a predat printului Petru (viitorul tar Petru al doilea). De la el
provine o celebra conjectura in teoria numerelor. Aceasta este mentionata pentru prima oara
intr-o scrisoare adresata lui Euloer la 7 iulie 1742 in care afirma ca: "se pare ca orice numar mai mare decat 2
se poate scrie ca suma de trei numere prime". Euler a reexprimat aceasta conjectura in forma:
"orice numar intreg pozitiv >=4 poate fi scris ca suma de doua numere prime" denumita si conjectura lui Goldbach.
Se considera un tablou bidimensional NxM cu elemente numere naturale in intervalul [4,1000]. Sa se indice pozitiile
elementelor pare ale matricei si toate descompunerile acestora a suma de numere prime, ca in exemplul urmator:
Input:
Dimensiunea matricei:
2 3
12 346 789
44 7 82
Output:
Matrix:
12 346 789
44 7 82
mat[0][0] = 12
12 = 5 + 7
mat[0][1] = 346
346 = 29 + 317
346 = 53 + 293
346 = 83 + 263
346 = 89 + 257
346 = 107 + 239
346 = 113 + 233
346 = 149 + 197
346 = 167 + 179
346 = 173 + 173
mat[1][0] = 44
44 = 3 + 41
44 = 7 + 37
44 = 13 + 31
mat[1][2] = 82
82 = 3 + 79
82 = 11 + 71
82 = 23 + 59
82 = 29 + 53
82 = 41 + 41
*/
#include <stdio.h>
int isPrime(int n) {
int prime = 1,
i;
i = 2;
if(n<=1) return 0;
if(n == 2 || n == 3) return 1;
while(i*i<=n && prime) {
prime = (n%i)!=0;
i++;
}
return prime;
};
int main(int argc, char const *argv[]) {
/*
int n = 346;
for(int i = 4; i <= n/2; ++i) {
if(isPrime(i) && isPrime(n-i)) {
printf("%d = %d + %d\n", n, i, n - i);
}
}
*/
int n, //number of the rows
m, //number of the cols
matrix[100][100];
scanf("%d %d",&n,&m);
for (size_t i = 0; i < n ; i++) {
for (size_t j = 0; j < m; j++) {
scanf("%d",&matrix[i][j]);
}
}
printf("%s\n", "Matrix:");
for (size_t i = 0; i < n ; i++) {
for (size_t j = 0; j < m; j++) {
printf("%4d ", matrix[i][j]);
}
printf("\n");
}
printf("\n");
for (size_t i = 0; i < n ; i++) {
for (size_t j = 0; j < m; j++) {
if(!(matrix[i][j]&1)) {
printf("mat[%ld][%ld] = %d\n", i, j, matrix[i][j]);
for (size_t k = 2; k <= matrix[i][j]/2; k++) {
if(isPrime(k) && isPrime(matrix[i][j]-k)) {
printf("%d = %ld + %ld\n", matrix[i][j], k, matrix[i][j] - k);
}
}
}
}
printf("\n");
}
return 0;
}
LyoKL0NocmlzdGlhbiBHb2xkYmFjaCBhIGZvc3QgdW4gbWF0ZW1hdGljaWFuIGNlbGVicnUuIFMtYSBuYXNjdXQKbGEgMTggbWFydGllIDE2OTAgbGEgS29uaWdzYmVyZywgUHJ1c2lhIChhc3RhemkgS2FsaW5zZ3JhZCwgUnVzaWEpIHNpIGEgbXVyaXQKbGEgMjAgbm9pZW1icmllIDE3NjQgaW4gTW9zY292YS4gRWwgYSBzdHVkaWF0IGRyZXB0dWwgc2kgbC1hIHByZW9jdXBhdCwgZGUgYXNlbWVuZWEsCmRlIG1hdGVtYXRpY2FtIGluIHNwZWNpYWwgZGUgdGVvcmlhIG51bWVyZWxvci4gTWFyZ2luYWwsIHMtYSBtYWkgaW50ZXJlc2F0IGRlIGRvbWVuaWkKY2Egc3VtZWxlIGluZmluaXRlLCB0ZW9yaWEgY3VyYmVsb3IsIHRlb3JpYSBlY3VhdGlpbG9yLiBFbCBhIGNhbGF0b3JpdCBtdWx0IGluIEV1cm9wYSBzaSBhIGF2dXQKZGlzY3V0aWkgZnJ1Y3R1b2FzZSBjdSBtYXRlbWF0aWNpZW5pIGNlbGVicmksIHByZWN1bSBMZWlibml6LCBCZXJub3VsbGksIGRlIE1vaXZyZSwgSGVybWFubi4gTyBtYXJ0aWUgcGFydGUKZGluIG11bmNhIHNhIHNlIHJlZmxlY3RhIGluIGNvcmVzcG9uZGVudGEgY3UgRXVsZXIuIEFjZWFzdGEgY29yZXNwb25kZW50YSBhIGR1cmF0CmFwcm9hcGUgMjAgZGUgYW5pIHNpIHJlcHJlemludGEgdW51bCBkaW50cmUgY2VsZSBtYWkgaW1wb3J0YW50ZSBkb2N1bWVudGUgc3RpaW50aWZpY2UgZGluIHNlY29sdWwKYWwgWFZJSUkgLSBsZWEuIEEgbHVjcmF0IGNhIHByb2Zlc29yIGRlIG1hdGVtYXRpY2Egc2kgaXN0b3JpYyBsYSBub3VhCmluZmlpbnRhIGFjYWRlbWllIGRpbiBTdC4gUGV0ZXJzYnVyZyBzaSBhIHByZWRhdCBwcmludHVsdWkgUGV0cnUgKHZpaXRvcnVsIHRhciBQZXRydSBhbCBkb2lsZWEpLiBEZSBsYSBlbApwcm92aW5lIG8gY2VsZWJyYSBjb25qZWN0dXJhIGluIHRlb3JpYSBudW1lcmVsb3IuIEFjZWFzdGEgZXN0ZSBtZW50aW9uYXRhIHBlbnRydSBwcmltYSBvYXJhCmludHItbyBzY3Jpc29hcmUgYWRyZXNhdGEgbHVpIEV1bG9lciBsYSA3IGl1bGllIDE3NDIgaW4gY2FyZSBhZmlybWEgY2E6ICJzZSBwYXJlIGNhIG9yaWNlIG51bWFyIG1haSBtYXJlIGRlY2F0IDIKc2UgcG9hdGUgc2NyaWUgY2Egc3VtYSBkZSB0cmVpIG51bWVyZSBwcmltZSIuIEV1bGVyIGEgcmVleHByaW1hdCBhY2Vhc3RhIGNvbmplY3R1cmEgaW4gZm9ybWE6CiJvcmljZSBudW1hciBpbnRyZWcgcG96aXRpdiA+PTQgcG9hdGUgZmkgc2NyaXMgY2Egc3VtYSBkZSBkb3VhIG51bWVyZSBwcmltZSIgZGVudW1pdGEgc2kgY29uamVjdHVyYSBsdWkgR29sZGJhY2guCgpTZSBjb25zaWRlcmEgdW4gdGFibG91IGJpZGltZW5zaW9uYWwgTnhNIGN1IGVsZW1lbnRlIG51bWVyZSBuYXR1cmFsZSBpbiBpbnRlcnZhbHVsIFs0LDEwMDBdLiBTYSBzZSBpbmRpY2UgcG96aXRpaWxlCmVsZW1lbnRlbG9yIHBhcmUgYWxlIG1hdHJpY2VpIHNpIHRvYXRlIGRlc2NvbXB1bmVyaWxlIGFjZXN0b3JhIGEgc3VtYSBkZSBudW1lcmUgcHJpbWUsIGNhIGluIGV4ZW1wbHVsIHVybWF0b3I6CklucHV0OgpEaW1lbnNpdW5lYSBtYXRyaWNlaToKMiAzCjEyIDM0NiA3ODkKNDQgNyA4MgoKT3V0cHV0OgpNYXRyaXg6CiAgMTIgIDM0NiAgNzg5CiAgNDQgICAgNyAgIDgyCgptYXRbMF1bMF0gPSAxMgoxMiA9IDUgKyA3Cm1hdFswXVsxXSA9IDM0NgozNDYgPSAyOSArIDMxNwozNDYgPSA1MyArIDI5MwozNDYgPSA4MyArIDI2MwozNDYgPSA4OSArIDI1NwozNDYgPSAxMDcgKyAyMzkKMzQ2ID0gMTEzICsgMjMzCjM0NiA9IDE0OSArIDE5NwozNDYgPSAxNjcgKyAxNzkKMzQ2ID0gMTczICsgMTczCgptYXRbMV1bMF0gPSA0NAo0NCA9IDMgKyA0MQo0NCA9IDcgKyAzNwo0NCA9IDEzICsgMzEKbWF0WzFdWzJdID0gODIKODIgPSAzICsgNzkKODIgPSAxMSArIDcxCjgyID0gMjMgKyA1OQo4MiA9IDI5ICsgNTMKODIgPSA0MSArIDQxCiovCiNpbmNsdWRlIDxzdGRpby5oPgoKaW50IGlzUHJpbWUoaW50IG4pIHsKICAgIGludCBwcmltZSA9IDEsCiAgICAgICAgaTsKICAgIGkgPSAyOwogICAgaWYobjw9MSkgcmV0dXJuIDA7CiAgICBpZihuID09IDIgfHwgbiA9PSAzKSByZXR1cm4gMTsKICAgIHdoaWxlKGkqaTw9biAmJiBwcmltZSkgewogICAgICBwcmltZSA9IChuJWkpIT0wOwogICAgICBpKys7CiAgICB9CiAgICByZXR1cm4gcHJpbWU7Cn07CmludCBtYWluKGludCBhcmdjLCBjaGFyIGNvbnN0ICphcmd2W10pIHsKICAvKgogIGludCBuID0gMzQ2OwoKICBmb3IoaW50IGkgPSA0OyBpIDw9IG4vMjsgKytpKSB7CgogICAgICBpZihpc1ByaW1lKGkpICYmIGlzUHJpbWUobi1pKSkgewoKICAgICAgICAgcHJpbnRmKCIlZCA9ICVkICsgJWRcbiIsIG4sIGksIG4gLSBpKTsKICAgICAgfQogIH0KICAqLwoKICBpbnQgbiwgLy9udW1iZXIgb2YgdGhlIHJvd3MKICAgICAgbSwgLy9udW1iZXIgb2YgdGhlIGNvbHMKICAgICAgbWF0cml4WzEwMF1bMTAwXTsKICAgICAgc2NhbmYoIiVkICVkIiwmbiwmbSk7CiAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbiA7IGkrKykgewogICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBtOyBqKyspIHsKICAgICAgICAgICAgc2NhbmYoIiVkIiwmbWF0cml4W2ldW2pdKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHByaW50ZigiJXNcbiIsICJNYXRyaXg6Iik7CiAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbiA7IGkrKykgewogICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBtOyBqKyspIHsKICAgICAgICAgICAgcHJpbnRmKCIlNGQgIiwgbWF0cml4W2ldW2pdKTsKICAgICAgICB9CiAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAgfQoKICAgICAgcHJpbnRmKCJcbiIpOwoKICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuIDsgaSsrKSB7CgogICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBtOyBqKyspIHsKCiAgICAgICAgICAgIGlmKCEobWF0cml4W2ldW2pdJjEpKSB7CgogICAgICAgICAgICAgIHByaW50ZigibWF0WyVsZF1bJWxkXSA9ICVkXG4iLCBpLCBqLCBtYXRyaXhbaV1bal0pOwoKICAgICAgICAgICAgICBmb3IgKHNpemVfdCBrID0gMjsgayA8PSBtYXRyaXhbaV1bal0vMjsgaysrKSB7CgogICAgICAgICAgICAgICAgICBpZihpc1ByaW1lKGspICYmIGlzUHJpbWUobWF0cml4W2ldW2pdLWspKSB7CgogICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVkID0gJWxkICsgJWxkXG4iLCBtYXRyaXhbaV1bal0sIGssICBtYXRyaXhbaV1bal0gLSBrKTsKCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAgfQogIHJldHVybiAwOwp9Cg==