1780 - Fractie: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dau două numere naturale '''n''' și '''m''', '''m''' fiind prim. Să se afle cel mai mare număr natural '''x''', astfel încât numărul '''n!/mx'''să fie natural. == Date de intrare == Programul citește de la tastatură numerele '''n''' si '''m'''. == Date de ieşire == Programul va afișa pe ecran numarul '''x'''. == Restricții și precizări == *'''2 ≤ m ≤ n ≤ 10000''' *'''m''' este prim. == Exemplu == ; Intrare :5 5 ; Ieșire :1 ==Explicație...
 
 
Line 1: Line 1:
== Cerinţa ==
== Cerinţa ==
Se dau două numere naturale '''n''' și '''m''', '''m''' fiind prim. Să se afle cel mai mare număr natural '''x''', astfel încât numărul '''n!/mx'''să fie natural.
Se dau două numere naturale '''n''' și '''m''', '''m''' fiind prim. Să se afle cel mai mare număr natural '''x''', astfel încât numărul '''n!/mx''' să fie natural.
 
== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numerele '''n''' si '''m'''.
Programul citește de la tastatură numerele '''n''' si '''m'''.

Latest revision as of 11:50, 9 May 2023

Cerinţa[edit]

Se dau două numere naturale n și m, m fiind prim. Să se afle cel mai mare număr natural x, astfel încât numărul n!/mx să fie natural.

Date de intrare[edit]

Programul citește de la tastatură numerele n si m.

Date de ieşire[edit]

Programul va afișa pe ecran numarul x.

Restricții și precizări[edit]

  • 2 ≤ m ≤ n ≤ 10000
  • m este prim.

Exemplu[edit]

Intrare
5 5
Ieșire
1

Explicație[edit]

5! = 120. 60 = 5 * 2 * 2 * 2 * 3.

Rezolvare[edit]

<syntaxhighlight lang="python" line> def validare_date(n, m):

   # Verifică dacă n și m sunt numere întregi pozitive
   if isinstance(n, int) and isinstance(m, int) and n > 0 and m > 0:
       return True
   else:
       return False

if __name__ == '__main__':

   # Citește datele de intrare de la utilizator
   n, m = map(int, input().split())
   # Validează datele de intrare
   if validare_date(n, m):
       # Efectuează aceeași calculație ca în codul original
       p = 0
       for i in range(1, n+1):
           aux = i
           if aux % m == 0:
               while aux % m == 0:
                   p += 1
                   aux = aux // m
       print(p)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>