3925 - Rest1

De la Universitas MediaWiki

Cerință

Se dau numerele naturale n, c și r. Să se determine numărul minim m, strict mai mare decât n, care dă restul r prin împărțire la c.

Date de intrare

Programul citește de la tastatură numerele n, c și r.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran numărul m. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări

  • 1 ≤ n ≤ 1.000.000.000.000
  • 0 ≤ r < c ≤ 1.000.000.000.000

Exemplul 1

Intrare
30 7 1
Ieșire
Datele de intrare corespund restricțiilor impuse.
36

Rezolvare

Rezolvare ver. 1

def validare(n, c, r):
    # Verifica daca n este intre 1 si 1000000000000
    if n < 1 or n > 1000000000000:
        return False
    # Verifica daca c este intre 0 si 1000000000000
    if c < 0 or c > 1000000000000:
        return False
    # Verifica daca r este intre 0 si c-1
    if r < 0 or r >= c:
        return False
    # Daca toate conditiile sunt indeplinite, returneaza True
    return True


def numar_minim(n, c, r):
    m = n + 1
    # Cat timp restul impartirii lui m la c nu este egal cu r, adauga 1 la m
    while m % c != r:
        m += 1
    return m


if __name__ == "__main__":
    # Citirea datelor de intrare
    n, c, r = map(int, input().split())

    # Verificarea datelor de intrare și calculul valorilor cerute
    if validare(n, c, r):
        # Afiseaza un mesaj de confirmare a datelor de intrare valide
        print("Datele de intrare corespund restricțiilor impuse.")
        # Afiseaza rezultatul apelarii functiei numar_minim cu parametrii specificati
        print(numar_minim(n, c, r))
    else:
        # Afiseaza un mesaj de eroare daca datele de intrare nu sunt valide
        print("Datele de intrare nu corespund restricțiilor impuse.")