1780 - Fractie

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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

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

Rezolvare

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.")