# 右端の数字に着目 # 右端の数字がインデックスとマッチしていなければアウト # そこから左に1つずつ動く、右端 # 右端からの歩数分だけの数がそこに降ってくる、そのそきに初期値と降ってくる数の和がそのインデックスの倍数必要か N = int(input()) A = list(map(int, input().split())) for i in range(N-1, -1, -1): if A[i] == 0: A.pop() else: break remainder = len(A) #print(A, remainder) ans = 'Yes' cumu = 0 for i in range(remainder-1, -1, -1): if (A[i]+cumu)%(i+1)!=0: ans = 'No' cumu += 1 #print('ans', ans, 'cumu', cumu) print(ans)