# hledání Mersennových prvočísel M_n = 2^n - 1 # pro n od 2 do 60 n = 2 # počítadlo mocnina2 = 4 # průběžně si pamatujeme mocninu 2 # testujeme kandidáty v určeném rozsahu while n <= 60: cislo = mocnina2 - 1 # číslo je rozhodně liché # není potřeba testovat dělitelnost 2! # testování lichých dělitelů delitel = 3 # testování jednotlivých dělitelů v cyklu while delitel * delitel <= cislo: # POZOR: musí být <= if cislo % delitel == 0: # test dělitelnosti break # dělitel nalezen, není třeba dále testovat delitel = delitel + 2 # další lichý dělitel # konec testování lichých dělitelů if delitel * delitel > cislo: # výpis nalezeného prvočísla print('M', n, '=', cislo, 'je prvočíslo') else: print('M', n, '=', cislo, '=', delitel, '*', cislo // delitel) n = n + 1 # jdeme na další číslo mocnina2 = mocnina2 * 2 # aktualizujeme mocninu 2