Feladat:
Magyarországon 1957 óta lehet ötös lottót játszani. A játék lényege a következő: a lottószelvényeken 90 szám közül 5 számot kell a fogadónak megjelölnie. Ha ezek közül 2 vagy annál több megegyezik a kisorsolt számokkal, akkor nyer. Az évek során egyre többen hódoltak ennek a szerencsejátéknak és a nyeremények is egyre nőttek.
Feladat leírás: itt, forrás állományok: itt.
Megoldás:
def prim(a): return all(a % i for i in range(2, int(a ** 0.5) + 1)) huzasok = {} with open('lottosz.dat') as f: for i, l in enumerate(f): huzasok[i + 1] = list(map(int, l.split())) szamok = [v[i] for v in huzasok.values() for i in range(5)] het_52 = sorted(list(map(int, input('52. hét számai (szóközzel elválasztva): ').split()))) print(het_52) print(huzasok[int(input('Melyik hét számaira kiváncsi: '))]) print('Van ki nem húzott szám!') if len(set(szamok)) < 90 else print('Nincs ki nem húzott szám!') print(f'Páratlan számot {len([szam for szam in szamok if szam % 2 != 0])}-szor húztak ki.') huzasok[52] = het_52 szamok += het_52 with open('lotto52.ki', 'w') as f: for het in huzasok.values(): f.write(' '.join(map(str, het)) + '\n') szam_stat = [szamok.count(i) for i in range(1, 91)] print('\nSzámok gyakorisága:') for i in range(1, 91): print(szam_stat[i - 1], end=' ') if i % 15 == 0: print('\n') print('Ki nem húzott prímszámok: ', set(i for i in range(2, 91) if prim(i)) - set(szamok))