1319 - Descompunere factori

From Bitnami MediaWiki
Revision as of 09:50, 26 March 2023 by Paul Matei (talk | contribs) (Pagină nouă: == 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>