2215 - cifre002
Cerinţa[edit | edit source]
Se dă un număr natural n format cu cifre distincte nenule. Să se afle câte numere pare se pot obţine din n, prin rearanjarea cifrelor sale.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran numărul numerelor pare care se pot obţine prin rearanjarea cifrelor lui n.
Restricţii şi precizări[edit | edit source]
- 1 ⩽ n ⩽ 2.000.000.000
Exemplul 1[edit | edit source]
- Intrare
324
- Iesire
Datele de intrare corespund restrictiilor impuse 4
Exemplu 2[edit | edit source]
- Intrare
2000000001
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> from math import factorial
def compute_even_numbers(n):
digits = [int(d) for d in str(n)] even_digits = [d for d in digits if d % 2 == 0] if not even_digits: return 0 digits.sort() count = 0 for ed in even_digits: temp = digits[:] temp.remove(ed) count += factorial(len(temp)) * (len(temp) ** (len(temp) - 1)) return count
def main():
n = int(input())
if n > 2000000000: print("Datele de intrare nu corespund restrictiilor impuse") return
even_numbers = compute_even_numbers(n) print("Datele de intrare corespund restrictiilor impuse") print(even_numbers)
if __name__ == "__main__":
main()
</syntaxhighlight>
Explicatie[edit | edit source]
Numerele pare ce se pot obţine prin rearanjarea cifrelor lui n sunt: 324,342,234,432