1319 - Descompunere factori
De la Universitas MediaWiki
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
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=' ')