1319 - Descompunere factori
Cerinţa
Se citeşte un număr natural n. Să se determine descompunerea în factori primi a lui n.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul va afișa pe ecran factorii primi ai lui n în ordine crescătoare, separați prin câte un spațiu.
Restricții și precizări
- 2 ≤ n ≤ 2.000.000.000
Exemplu
- Intrare
- 1100
- Ieșire
- 2 2 5 5 11
Explicație
Numărul n=1100=2*2*5*5*11.
Rezolvare
<syntaxhighlight lang="python" line> import math
def validate_date(date):
try: n = int(date) if n >= 2 and n <= 2000000000: return n else: print("Numarul introdus trebuie sa fie un numar natural intre 2 si 2.000.000.000") return None except ValueError: print("Nu ati introdus un numar natural valid") return None
n = input("Introduceti numarul n: ") n = validate_date(n)
if n:
i = 2 while i <= math.sqrt(n): if n % i == 0: print(i, end=' ') n //= i else: i += 1
if n > 1: print(n, end=' ')
</syntaxhighlight>