1
print(len([i for i in range(10000, 100000) if len({"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} - set([*str(i)])) == 5 and len({"0", "2", "4", "6", "8"} - set([*str(i)])) == 3 and len({"1", "3", "5", "7", "9"} - set([*str(i)])) == 2]))
Proszę bardzo, uładniłem trochę (a przy okazji znalazłem drobny błąd w poprzedniej wersji - bez wpływu na wynik):Przy okazji znalazłem drobny błąd w komentarzu (taki czeski :-)).
(...)
liczba_jako_tekst = str(liczba) # zamien na biezaca liczbe tekst (latwiejszy dostep do poszczegolnych cyfr)
(...)
licznik = 0 # ustaw licznik znalezionych liczb na 0
for liczba in range(10000, 100000): # iteruj przez liczby pieciocyfrowe od 10000 do 99999
liczba_jako_tekst = str(liczba) # zamien biezaca liczbe na tekst (latwiejszy dostep do poszczegolnych cyfr)
lista_unikalnych_cyfr = [] # ustaw liste unikalnych cyfr na pusta dla biezacej liczby
for cyfra in liczba_jako_tekst: # iteruj przez poszczegolne cyfry
if cyfra not in lista_unikalnych_cyfr: # jezeli cyfry nie ma na liscie, to...
lista_unikalnych_cyfr += [cyfra] # ... dodaj ja
if not len(lista_unikalnych_cyfr) == 5: # jezeli na liscie nie ma 5 elementow, to...
continue # ... nie sprawdzaj dalej (liczba nie spelnia warunkow, bo przynajmniej jedna cyfra sie powtarza)
licznik_cyfr_nieparzystych = 0 # ustaw licznik cyfr nieparzystych na 0 dla biezacej liczby
licznik_cyfr_parzystych = 0 # ustaw licznik cyfr parzystych na 0 dla biezacej liczby
for cyfra in liczba_jako_tekst: # iteruj przez poszczegolne cyfry
if int(cyfra) % 2 == 1: # jezeli reszta z dzielenia cyfry przez 2 wynosi 1, to...
licznik_cyfr_nieparzystych += 1 # ... zwieksz licznik cyfr nieparzystych o 1
else: # w przeciwnym razie...
licznik_cyfr_parzystych += 1 # ... zwieksz licznik cyfr parzystych o 1
if licznik_cyfr_nieparzystych == 3 and licznik_cyfr_parzystych == 2: # jezeli liczba ma dokladnie 3 cyfry nieparzyste i 2 parzyste, to...
licznik += 1 # zwieksz licznik o 1
print(licznik) # wypisz wynik na ekranie
Na szczęście on mówi, że nie PROŚCIEJ, a WPROSTWPROST, to jak dla mnie policzył miazo - swoim programikiem. Sprawdził KAŻDĄ liczbę pięciocyfrową i zsumował te pasujące.
Co może oznaczać zrobienie obliczeń (mnożenia) w głowie i zapisanie (Newtona * 1200) - 960.