N = 100 def dalsi_dostih(poradie): nenavidi = {} for i in range(N): for j in range(i-1,-1,-1): if poradie[i] % poradie[j] == 0: nenavidi[ poradie[i] ] = poradie[j] break nove_poradie = [ poradie[0] ] for x in poradie[1:]: if x in nenavidi: kde = nove_poradie.index( nenavidi[x] ) nove_poradie = nove_poradie[:kde] + [x] + nove_poradie[kde:] else: nove_poradie.append(x) return nove_poradie poradie = list( range(1,N+1) ) kol = 0 while True: nove_poradie = dalsi_dostih(poradie) if nove_poradie == poradie: print(kol) break kol += 1 poradie = nove_poradie