#include <bits/stdc++.h>
using namespace std;
#define fst first
#define snd second
typedef long long ll;
typedef pair<int, int> ii;
const ll LINF = (ll)1e18;
const int INF = (int)1e9;
const int N = (int)1e6 + 5;
int n;
int a[N];
ll sum[N];
bool isPrime[N];
void sieve() {
for (int i = 2; i < N; i++) isPrime[i] = true;
for (int i = 2; i * i < N; i++) {
if (isPrime[i]) {
for (int j = i * i; j < N; j += i) isPrime[j] = false;
}
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
sum[i] = sum[i - 1] + a[i];
}
sieve();
ll ans = -LINF;
ll min_sum_l = LINF;
for (int r = 2; r <= n; r++) {
if (isPrime[r]) {
ll max_sum = sum[r] - min_sum_l;
ans = max(ans, max_sum);
min_sum_l = min(min_sum_l, sum[r - 1]);
}
}
cout << ans << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAoKI2RlZmluZSBmc3QgZmlyc3QKI2RlZmluZSBzbmQgc2Vjb25kIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7IAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAKCmNvbnN0IGxsIExJTkYgPSAobGwpMWUxODsgCmNvbnN0IGludCBJTkYgPSAoaW50KTFlOTsKCmNvbnN0IGludCBOID0gKGludCkxZTYgKyA1OyAgIAoKaW50IG47IAppbnQgYVtOXTsgCmxsIHN1bVtOXTsgCgpib29sIGlzUHJpbWVbTl07IAoKdm9pZCBzaWV2ZSgpIHsKCWZvciAoaW50IGkgPSAyOyBpIDwgTjsgaSsrKSBpc1ByaW1lW2ldID0gdHJ1ZTsgIAoJCglmb3IgKGludCBpID0gMjsgaSAqIGkgPCBOOyBpKyspIHsKCQlpZiAoaXNQcmltZVtpXSkgewoJCQlmb3IgKGludCBqID0gaSAqIGk7IGogPCBOOyBqICs9IGkpIGlzUHJpbWVbal0gPSBmYWxzZTsgCgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyAKCWNpbi50aWUoMCk7IAoJY2luID4+IG47IAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CgkJY2luID4+IGFbaV07IAoJCXN1bVtpXSA9IHN1bVtpIC0gMV0gKyBhW2ldOyAKCX0KCglzaWV2ZSgpOyAgCgoJbGwgYW5zID0gLUxJTkY7ICAKCWxsIG1pbl9zdW1fbCA9IExJTkY7IAoJZm9yIChpbnQgciA9IDI7IHIgPD0gbjsgcisrKSB7CgkJaWYgKGlzUHJpbWVbcl0pIHsKCQkJbGwgbWF4X3N1bSA9IHN1bVtyXSAtIG1pbl9zdW1fbDsgICAgCgkJCWFucyA9IG1heChhbnMsIG1heF9zdW0pOyAgIAoJCQltaW5fc3VtX2wgPSBtaW4obWluX3N1bV9sLCBzdW1bciAtIDFdKTsgCgkJfQoJfQoKCWNvdXQgPDwgYW5zIDw8ICdcbic7Cn0K