2215 - cifre002
Cerinţa
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
Programul citește de la tastatură numărul n.
Date de ieșire
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
- 1 ⩽ n ⩽ 2.000.000.000
Exemplul 1
- Intrare
324
- Iesire
Datele de intrare corespund restrictiilor impuse 4
Exemplu 2
- Intrare
2000000001
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare
<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
Numerele pare ce se pot obţine prin rearanjarea cifrelor lui n sunt: 324,342,234,432