import math n = int(input()) A = list(map(int,input().split())) M = 2*10**5+5 count = [0]*M for a in A: count[a] += 1 if count[1]: ans = 1 print(ans) for i in range(n-1): print(1,2) exit() ans = 10**18 if count[0]: ans = 0 print(ans) for i in range(n-1): print(1,2) exit() target = [] dic = {} for ind,a in enumerate(A): now = a for i in range(2,int(a**0.5)+1): if now%i: continue if i in dic: target = [a,dic[i]] while now % i == 0: now //= i dic[i] = a if now != 1: dic[now] = a if target: first = [] for i,a in enumerate(A): if a in target: first.append(i+1) target.remove(a) print(0) print(*first) for i in range(n-2): print(1,2) exit() even = [] odd = [] for i,a in enumerate(A): if a%2 == 0: even.append(i+1) else: odd.append(i+1) assert len(even) < 2 if n == 2: ans = (A[0]-1)*(A[1]-1) print(ans) print(1,2) exit() if even == []: if n > 4: print(0) else: ans = (A[0]-1)*(A[1]-1) ans = (ans-1)*(A[2]-1) print(ans) for i in range(n-1): print(1,2) exit() else: ans = 0 print(0) print(odd.pop(),odd.pop()) print(n-1,even.pop()) for i in range(n-3): print(1,2)