#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdio>
using namespace std;
#define ll long long
#define FAST ios_base::sync_with_stdio(false); cin.tie(NULL);
#define FILE if (fopen("perfect.inp", "r")) { freopen("perfect.inp", "r", stdin); freopen("perfect.out", "w", stdout); }
#define int long long
#define pb push_back
const int M = 100005;
const int K = 1000005;
int n;
int a[2 * M];
int p[K];
int d[K];
int l[K];
void s() {
for (int i = 2; i < K; ++i) {
if (p[i] == 0) {
for (int j = i; j < K; j += i) {
if (p[j] == 0) p[j] = i;
}
}
}
}
vector<int> g(int x) {
vector<int> r;
while (x > 1) {
int f = p[x];
r.pb(f);
while (x % f == 0) x /= f;
}
return r;
}
signed main() {
FAST;
FILE;
s();
if (!(cin >> n)) return 0;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
}
int m = 0;
int w = 0;
for (int i = 1; i <= n; ++i) {
vector<int> v = g(a[i]);
for (int x : v) {
if (l[x] == i - 1) {
d[x]++;
} else {
d[x] = 1;
}
l[x] = i;
m = max(m, d[x]);
}
}
if (m == 0) {
cout << "0 0\n";
return 0;
}
for (int i = 0; i < K; ++i) {
d[i] = 0;
l[i] = 0;
}
for (int i = 1; i <= n; ++i) {
vector<int> v = g(a[i]);
for (int x : v) {
if (l[x] == i - 1) {
d[x]++;
} else {
d[x] = 1;
}
l[x] = i;
if (d[x] == m) {
w++;
}
}
}
cout << m << " " << w << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y3N0ZGlvPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgRkFTVCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsKI2RlZmluZSBGSUxFIGlmIChmb3BlbigicGVyZmVjdC5pbnAiLCAiciIpKSB7IGZyZW9wZW4oInBlcmZlY3QuaW5wIiwgInIiLCBzdGRpbik7IGZyZW9wZW4oInBlcmZlY3Qub3V0IiwgInciLCBzdGRvdXQpOyB9CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawoKY29uc3QgaW50IE0gPSAxMDAwMDU7CmNvbnN0IGludCBLID0gMTAwMDAwNTsKaW50IG47CmludCBhWzIgKiBNXTsKaW50IHBbS107CmludCBkW0tdOwppbnQgbFtLXTsKCnZvaWQgcygpIHsKICAgIGZvciAoaW50IGkgPSAyOyBpIDwgSzsgKytpKSB7CiAgICAgICAgaWYgKHBbaV0gPT0gMCkgewogICAgICAgICAgICBmb3IgKGludCBqID0gaTsgaiA8IEs7IGogKz0gaSkgewogICAgICAgICAgICAgICAgaWYgKHBbal0gPT0gMCkgcFtqXSA9IGk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCnZlY3RvcjxpbnQ+IGcoaW50IHgpIHsKICAgIHZlY3RvcjxpbnQ+IHI7CiAgICB3aGlsZSAoeCA+IDEpIHsKICAgICAgICBpbnQgZiA9IHBbeF07CiAgICAgICAgci5wYihmKTsKICAgICAgICB3aGlsZSAoeCAlIGYgPT0gMCkgeCAvPSBmOwogICAgfQogICAgcmV0dXJuIHI7Cn0KCnNpZ25lZCBtYWluKCkgewogICAgRkFTVDsKICAgIEZJTEU7CgogICAgcygpOwoKICAgIGlmICghKGNpbiA+PiBuKSkgcmV0dXJuIDA7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9CgogICAgaW50IG0gPSAwOwogICAgaW50IHcgPSAwOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewogICAgICAgIHZlY3RvcjxpbnQ+IHYgPSBnKGFbaV0pOwogICAgICAgIGZvciAoaW50IHggOiB2KSB7CiAgICAgICAgICAgIGlmIChsW3hdID09IGkgLSAxKSB7CiAgICAgICAgICAgICAgICBkW3hdKys7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkW3hdID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsW3hdID0gaTsKICAgICAgICAgICAgbSA9IG1heChtLCBkW3hdKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKG0gPT0gMCkgewogICAgICAgIGNvdXQgPDwgIjAgMFxuIjsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBmb3IgKGludCBpID0gMDsgaSA8IEs7ICsraSkgewogICAgICAgIGRbaV0gPSAwOwogICAgICAgIGxbaV0gPSAwOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewogICAgICAgIHZlY3RvcjxpbnQ+IHYgPSBnKGFbaV0pOwogICAgICAgIGZvciAoaW50IHggOiB2KSB7CiAgICAgICAgICAgIGlmIChsW3hdID09IGkgLSAxKSB7CiAgICAgICAgICAgICAgICBkW3hdKys7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkW3hdID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsW3hdID0gaTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChkW3hdID09IG0pIHsKICAgICAgICAgICAgICAgIHcrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IG0gPDwgIiAiIDw8IHcgPDwgIlxuIjsKCiAgICByZXR1cm4gMDsKfQo=