#include <bits/stdc++.h>
using namespace std;
int n;
const int INF = 1e6;
vector<long long> inp;
vector<bool> fakeprime(INF+1, true);
vector<int> prime;
void gen_prime()
{
fakeprime[0] = fakeprime[1] = false;
for(int i =2; i<=INF; i++)
{
if(fakeprime[i])
for(long long j = (long long)i*i; j<=INF; j+=(long long)i) fakeprime[j] = false;
}
for(int i =2; i<=INF; i++) if(fakeprime[i]) prime.push_back(i);
}
int cnt_primeuoc(long long a)
{
int res = 0;
for(int x: prime)
{
if( (long long)x*x > a) break;
if(a % x == 0)
{
int cnt = 0;
while(a % x == 0)
{
cnt++;
a /= x;
}
res+=cnt;
}
}
if(a > 1) res++;
return res;
}
long long gcd(long long a, long long b)
{
if(b == 0 ) return a;
return gcd(b, a % b);
}
void sub1()
{
long long ucln = gcd(inp[1], inp[2]);
long long bcnn = (inp[1] * inp[2]) / ucln;
// cout << ucln << " " << bcnn << endl;
long long tmp1 = cnt_primeuoc(min(inp[1], inp[2])) + cnt_primeuoc(max(inp[1], inp[2]) / ucln);
// << cnt_primeuoc(min(inp[1], inp[2]));
long long tmp2 = cnt_primeuoc(bcnn / inp[1]) + cnt_primeuoc(bcnn / inp[2]);
cout << min(tmp1,tmp2) << " " << 2 << endl;
cout << min(tmp1, tmp2) << " " << 1;
}
int process(long long a, long long b)
{
long long ucln = gcd(a, b);
long long bcnn = (a * b) / ucln;
long long tmp1 = cnt_primeuoc(min(a, b)) + cnt_primeuoc(max(a, b) / ucln);
// << cnt_primeuoc(min(inp[1], inp[2]));
long long tmp2 = cnt_primeuoc(bcnn / a) + cnt_primeuoc(bcnn / b);
return min(tmp1,tmp2);
}
void sub2()
{
for(int i =1; i<=n; i++)
{
pair<int, int> res = {1e9, 1e9};
for(int j = 1; j<=n; j++)
{
if(i == j) continue;
if(process(inp[i], inp[j]) < res.first)
{
res.first = process(inp[i], inp[j]);
res.second = j;
}
}
cout << res.first << " " << res.second << '\n';
}
}
int main()
{
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
cin >> n;
inp.resize(n+1);
for(int i =1; i<=n; i++) cin >> inp[i];
gen_prime();
// sub1();
sub2();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuOwpjb25zdCBpbnQgSU5GID0gMWU2Owp2ZWN0b3I8bG9uZyBsb25nPiBpbnA7CnZlY3Rvcjxib29sPiBmYWtlcHJpbWUoSU5GKzEsIHRydWUpOwp2ZWN0b3I8aW50PiBwcmltZTsKdm9pZCBnZW5fcHJpbWUoKQp7CglmYWtlcHJpbWVbMF0gPSBmYWtlcHJpbWVbMV0gPSBmYWxzZTsKCWZvcihpbnQgaSA9MjsgaTw9SU5GOyBpKyspCgl7CgkJaWYoZmFrZXByaW1lW2ldKQoJCWZvcihsb25nIGxvbmcgaiA9IChsb25nIGxvbmcpaSppOyBqPD1JTkY7IGorPShsb25nIGxvbmcpaSkgZmFrZXByaW1lW2pdID0gZmFsc2U7Cgl9Cglmb3IoaW50IGkgPTI7IGk8PUlORjsgaSsrKSBpZihmYWtlcHJpbWVbaV0pIHByaW1lLnB1c2hfYmFjayhpKTsKCgkKfQoKaW50IGNudF9wcmltZXVvYyhsb25nIGxvbmcgYSkKewoJaW50IHJlcyA9IDA7Cglmb3IoaW50ICB4OiBwcmltZSkKCXsKCQlpZiggKGxvbmcgbG9uZyl4KnggPiBhKSBicmVhazsKCQlpZihhICUgeCA9PSAwKQoJCXsKCQkJaW50IGNudCA9IDA7CgkJCXdoaWxlKGEgJSB4ID09IDApCgkJCXsKCQkJCWNudCsrOwoJCQkJYSAvPSB4OwoJCQl9CgkJCXJlcys9Y250OwoJCX0KCQkKCX0KCWlmKGEgPiAxKSByZXMrKzsKCXJldHVybiByZXM7Cn0KCmxvbmcgbG9uZyBnY2QobG9uZyBsb25nIGEsIGxvbmcgbG9uZyBiKQp7CglpZihiID09IDAgKSByZXR1cm4gYTsKCXJldHVybiBnY2QoYiwgYSAlIGIpOwp9Cgp2b2lkIHN1YjEoKQp7Cglsb25nIGxvbmcgdWNsbiA9IGdjZChpbnBbMV0sIGlucFsyXSk7Cglsb25nIGxvbmcgYmNubiA9IChpbnBbMV0gKiBpbnBbMl0pIC8gIHVjbG47Ci8vCWNvdXQgPDwgdWNsbiA8PCAiICIgPDwgYmNubiA8PCBlbmRsOwoJbG9uZyBsb25nIHRtcDEgPSBjbnRfcHJpbWV1b2MobWluKGlucFsxXSwgaW5wWzJdKSkgKyBjbnRfcHJpbWV1b2MobWF4KGlucFsxXSwgaW5wWzJdKSAvIHVjbG4pOwoJLy8gPDwgY250X3ByaW1ldW9jKG1pbihpbnBbMV0sIGlucFsyXSkpOwoJbG9uZyBsb25nIHRtcDIgPSBjbnRfcHJpbWV1b2MoYmNubiAvIGlucFsxXSkgKyBjbnRfcHJpbWV1b2MoYmNubiAvIGlucFsyXSk7Cgljb3V0IDw8IG1pbih0bXAxLHRtcDIpIDw8ICIgIiA8PCAyIDw8IGVuZGw7Cgljb3V0IDw8IG1pbih0bXAxLCB0bXAyKSA8PCAiICIgPDwgMTsKfQoKaW50IHByb2Nlc3MobG9uZyBsb25nIGEsIGxvbmcgbG9uZyBiKQp7Cglsb25nIGxvbmcgdWNsbiA9IGdjZChhLCBiKTsKCWxvbmcgbG9uZyBiY25uID0gKGEgKiBiKSAvICB1Y2xuOwoJbG9uZyBsb25nIHRtcDEgPSBjbnRfcHJpbWV1b2MobWluKGEsIGIpKSArIGNudF9wcmltZXVvYyhtYXgoYSwgYikgLyB1Y2xuKTsKCS8vIDw8IGNudF9wcmltZXVvYyhtaW4oaW5wWzFdLCBpbnBbMl0pKTsKCWxvbmcgbG9uZyB0bXAyID0gY250X3ByaW1ldW9jKGJjbm4gLyBhKSArIGNudF9wcmltZXVvYyhiY25uIC8gYik7CglyZXR1cm4gbWluKHRtcDEsdG1wMik7Cn0Kdm9pZCBzdWIyKCkKewoJZm9yKGludCAgaSA9MTsgaTw9bjsgaSsrKQoJewoJCXBhaXI8aW50LCBpbnQ+IHJlcyA9IHsxZTksIDFlOX07CgkJZm9yKGludCBqID0gMTsgajw9bjsgaisrKQoJCXsKCQkJaWYoaSA9PSBqKSBjb250aW51ZTsKCQkJaWYocHJvY2VzcyhpbnBbaV0sIGlucFtqXSkgPCByZXMuZmlyc3QpCgkJCXsKCQkJCXJlcy5maXJzdCA9IHByb2Nlc3MoaW5wW2ldLCBpbnBbal0pOwoJCQkJcmVzLnNlY29uZCA9IGo7CgkJCX0KCQl9CgkJY291dCA8PCByZXMuZmlyc3QgPDwgIiAiIDw8IHJlcy5zZWNvbmQgPDwgJ1xuJzsKCX0KfQoKCmludCBtYWluKCkKewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKCWNpbiA+PiBuOwoJaW5wLnJlc2l6ZShuKzEpOwoJZm9yKGludCBpID0xOyBpPD1uOyBpKyspIGNpbiA+PiBpbnBbaV07CglnZW5fcHJpbWUoKTsKLy8Jc3ViMSgpOwpzdWIyKCk7CglyZXR1cm4gMDsKfQ==