3200 - Nea Dragulin

De la Universitas MediaWiki

Cerinţa

Nea Drăgulin are un numar natural pe care îl scrie de k ori, unul după altul. Aflaţi restul împărţirii numărului astfel obţinut la 72.

Date de intrare

Programul citește de la tastatură numerele numar şi k.

Date de ieşire

Programul va afișa pe ecran restul împărţirii numărului obţinut la 72.

Restricții și precizări

  • numar, k ∈ Ν
  • 1 ⩽ numar, k ⩽ 2.000.000.000

Exemplu

Intrare
51 3
Ieșire
Datele de intrare corespund restricțiilor impuse.
63

Explicație

Nea Drăgulin scrie numărul 51 de 3 ori obţinând numărul 515151. Restul împărţirii acestuia la 72 este 63.

Rezolvare

def validare_date(numar, k):
    flag = False
    if 0 <= int(numar) <= 2_000_000_000 and 0 <= int(k) <= 2_000_000_000:
            flag = True
    return flag


def rest_impartire(numar, k):
    numar_concatenat = int(str(numar) * k)
    rest = numar_concatenat % 72
    return rest


if __name__ == '__main__':
    numar, k = map(int, input().split())
    if validare_date(numar, k):
        print("\nDatele de intrare corespund restricțiilor impuse.\n")
        print(rest_impartire(int(numar), int(k)))
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")

Explicație

Acest program primește ca date de intrare două numere întregi: numărul și k, iar apoi calculează restul împărțirii numărului format prin concatenarea numărului dat de k ori, la 72.

Validarea datelor de intrare este realizată prin funcția validare_date(), care verifică dacă cele două numere date se încadrează într-un anumit interval.

Funcția rest_impartire() primește ca parametri numărul și k și îi concatenează k ori într-un număr întreg numit numar_concatenat. Apoi, funcția calculează restul împărțirii numar_concatenat la 72, utilizând operatorul modulo %.

În funcție de validarea datelor de intrare, se afișează restul împărțirii, sau un mesaj corespunzător.