#include <bits/stdc++.h>
using namespace std;
const int MAXA = 3000000;
const long long MOD = 123456789;
int spf[MAXA + 1];
void sieve() {
for (int i = 1; i <= MAXA; i++) spf[i] = i;
for (int i = 2; i * i <= MAXA; i++) {
if (spf[i] == i) {
for (int j = i * i; j <= MAXA; j += i) {
if (spf[j] == j)
spf[j] = i;
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
sieve();
int n;
cin >> n;
unordered_map<int, long long> cnt;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
while (x > 1) {
int p = spf[x];
cnt[p]++;
x /= p;
}
}
long long ans = 1;
for (auto &it : cnt) {
ans = ans * (it.second + 1) % MOD;
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBNQVhBID0gMzAwMDAwMDsKY29uc3QgbG9uZyBsb25nIE1PRCA9IDEyMzQ1Njc4OTsKaW50IHNwZltNQVhBICsgMV07CnZvaWQgc2lldmUoKSB7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBNQVhBOyBpKyspIHNwZltpXSA9IGk7CiAgICBmb3IgKGludCBpID0gMjsgaSAqIGkgPD0gTUFYQTsgaSsrKSB7CiAgICAgICAgaWYgKHNwZltpXSA9PSBpKSB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSBpICogaTsgaiA8PSBNQVhBOyBqICs9IGkpIHsKICAgICAgICAgICAgICAgIGlmIChzcGZbal0gPT0gaikKICAgICAgICAgICAgICAgICAgICBzcGZbal0gPSBpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIHNpZXZlKCk7ICAKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICB1bm9yZGVyZWRfbWFwPGludCwgbG9uZyBsb25nPiBjbnQ7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGludCB4OwogICAgICAgIGNpbiA+PiB4OwogICAgICAgIHdoaWxlICh4ID4gMSkgewogICAgICAgICAgICBpbnQgcCA9IHNwZlt4XTsKICAgICAgICAgICAgY250W3BdKys7CiAgICAgICAgICAgIHggLz0gcDsKICAgICAgICB9CiAgICB9CiAgICBsb25nIGxvbmcgYW5zID0gMTsKICAgIGZvciAoYXV0byAmaXQgOiBjbnQpIHsKICAgICAgICBhbnMgPSBhbnMgKiAoaXQuc2Vjb25kICsgMSkgJSBNT0Q7CiAgICB9CiAgICBjb3V0IDw8IGFuczsKICAgIHJldHVybiAwOwp9