Python/skript/Lucky number.py
Vzhled
Python/skript/Lucky_number.py – viz w: Příznivé číslo
# Lucky_number.py
# Demonstruje, jak se hledá posloupnost příznivých čísel
max = 99 # Maximum, do jakého čísla hledáme
print (f'Lucky_number, max={max}:')
run = 0 # Kolikátý běh
LL = [] # List of Lists – seznam postupných iterací
LL.append([]) # LL[0]
for i in range(1,max+1): # LL[0] naplníme čísly 1..max
LL[run].append(i)
print(''.join(f'{q:3d}' for q in (LL[run])))
mod = 2 # modulo = kolikátý v řadě se vyhodí
length = len(LL[run])
while(mod <= length):
LL.append(LL[run]) #zkopírujeme poslední seznam do dalšího
run += 1 # další běh
print(f'--- run={run}, length={length}, mod={mod} ---')
for i in range (0, length):
if not (i+1) % mod:
LL[run][i] = 0 # každý mod-tý člen přepíšeme nulou
print(''.join(f'{q:3d}' for q in (LL[run])))
LL[run] = [n for n in LL[run] if n != 0] # vyházíme nulové členy
print(''.join(f'{q:3d}' for q in (LL[run])))
length = len(LL[run])
if(run >= length):
break
mod = LL[run][run]
print(' ==' * length)
# Kontrola dle Příznivé číslo https://cs.wikipedia.org/wiki/P%C5%99%C3%ADzniv%C3%A9_%C4%8D%C3%ADslo
print(' 1, 3, 7, 9,13,15,21,25,31,33,37,43,49,51,63,67,69,73,75,79,87,93,99')
print(f'length = {length}')
Výstup:
Lucky_number, max=99: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 --- run=1, length=99, mod=2 --- 1 0 3 0 5 0 7 0 9 0 11 0 13 0 15 0 17 0 19 0 21 0 23 0 25 0 27 0 29 0 31 0 33 0 35 0 37 0 39 0 41 0 43 0 45 0 47 0 49 0 51 0 53 0 55 0 57 0 59 0 61 0 63 0 65 0 67 0 69 0 71 0 73 0 75 0 77 0 79 0 81 0 83 0 85 0 87 0 89 0 91 0 93 0 95 0 97 0 99 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 --- run=2, length=50, mod=3 --- 1 3 0 7 9 0 13 15 0 19 21 0 25 27 0 31 33 0 37 39 0 43 45 0 49 51 0 55 57 0 61 63 0 67 69 0 73 75 0 79 81 0 85 87 0 91 93 0 97 99 1 3 7 9 13 15 19 21 25 27 31 33 37 39 43 45 49 51 55 57 61 63 67 69 73 75 79 81 85 87 91 93 97 99 --- run=3, length=34, mod=7 --- 1 3 7 9 13 15 0 21 25 27 31 33 37 0 43 45 49 51 55 57 0 63 67 69 73 75 79 0 85 87 91 93 97 99 1 3 7 9 13 15 21 25 27 31 33 37 43 45 49 51 55 57 63 67 69 73 75 79 85 87 91 93 97 99 --- run=4, length=30, mod=9 --- 1 3 7 9 13 15 21 25 0 31 33 37 43 45 49 51 55 0 63 67 69 73 75 79 85 87 0 93 97 99 1 3 7 9 13 15 21 25 31 33 37 43 45 49 51 55 63 67 69 73 75 79 85 87 93 97 99 --- run=5, length=27, mod=13 --- 1 3 7 9 13 15 21 25 31 33 37 43 0 49 51 55 63 67 69 73 75 79 85 87 93 0 99 1 3 7 9 13 15 21 25 31 33 37 43 49 51 55 63 67 69 73 75 79 85 87 93 99 --- run=6, length=25, mod=15 --- 1 3 7 9 13 15 21 25 31 33 37 43 49 51 0 63 67 69 73 75 79 85 87 93 99 1 3 7 9 13 15 21 25 31 33 37 43 49 51 63 67 69 73 75 79 85 87 93 99 --- run=7, length=24, mod=21 --- 1 3 7 9 13 15 21 25 31 33 37 43 49 51 63 67 69 73 75 79 0 87 93 99 1 3 7 9 13 15 21 25 31 33 37 43 49 51 63 67 69 73 75 79 87 93 99 == == == == == == == == == == == == == == == == == == == == == == == 1, 3, 7, 9,13,15,21,25,31,33,37,43,49,51,63,67,69,73,75,79,87,93,99 length = 23