转化成在数列中存在的每个质因子最早出现的位置求解
import math
N = 1000010
st = [0]*2*N#该公因子是出现过几次?
node = [0]*N
a = [0]*N
q = [0]*N #三元组,存放元素及其质因子及其出现的位置
n = int(input())
a[1:n+1]=list(map(int,input().split()))
cnt = 0
for i in range(1,n+1):
if a[i] == 1:
continue
else:
j = 2
while j<=a[i]/j:
if a[i]%j==0:
while a[i]%j==0:
a[i]//=j
if st[j]==0:
st[j]+=1
q[j]=i
elif st[j]==1:
cnt += 1
node[cnt] = []
node[cnt].append([q[j],i])
st[j]+=1
j += 1
if a[i]>1:
if st[a[i]]==0:
st[a[i]]+=1
q[a[i]]=i
elif st[a[i]]==1:
st[a[i]]+=1
cnt += 1
node[cnt] = []
node[cnt].append([q[a[i]],i])
node1 = []
for i in range(1,cnt+1):
node1.append(node[i][0])
node1.sort()
print(node1[0][0],node1[0][1])