#include <bits/stdc++.h>
using namespace std;
const int MAXA = 1000000;
vector<bool> isPrime(MAXA + 1, true);
void sieve() {
isPrime[0] = isPrime[1] = false;
for (int i = 2; 1LL * i * i <= MAXA; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= MAXA; j += i) {
isPrime[j] = false;
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
sieve();
int n;
cin >> n;
long long ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int x;
cin >> x;
if ((i == j || i + j == n - 1) && isPrime[x]) {
ans++;
}
}
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBNQVhBID0gMTAwMDAwMDsKdmVjdG9yPGJvb2w+IGlzUHJpbWUoTUFYQSArIDEsIHRydWUpOwp2b2lkIHNpZXZlKCkgewogICAgaXNQcmltZVswXSA9IGlzUHJpbWVbMV0gPSBmYWxzZTsKICAgIGZvciAoaW50IGkgPSAyOyAxTEwgKiBpICogaSA8PSBNQVhBOyBpKyspIHsKICAgICAgICBpZiAoaXNQcmltZVtpXSkgewogICAgICAgICAgICBmb3IgKGludCBqID0gaSAqIGk7IGogPD0gTUFYQTsgaiArPSBpKSB7CiAgICAgICAgICAgICAgICBpc1ByaW1lW2pdID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgc2lldmUoKTsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBsb25nIGxvbmcgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspIHsKICAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgIGNpbiA+PiB4OwogICAgICAgICAgICBpZiAoKGkgPT0gaiB8fCBpICsgaiA9PSBuIC0gMSkgJiYgaXNQcmltZVt4XSkgewogICAgICAgICAgICAgICAgYW5zKys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCBhbnM7CiAgICByZXR1cm4gMDsKfQo=