3609 - Count Mod 10

De la Universitas MediaWiki

Cerința

Se dau două numere naturale nenule num1 și num2, unde num1 ⩽ num2. Să se determine câte numere naturale divizibile cu 10 sunt în intervalul [num1, num2].

Date de intrare

Programul citește de la tastatură numerele num1 și num2.

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse". În următorul rând se va afișa pe ecran numărul de numere naturale divizibile cu 10 din intervalul [num1, num2].

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Nu au fost respectate cerintele impuse".

Restricții și precizări

  • 1 ⩽ num1num2 ⩽ 1000000000

Exemplu 1

Intrare
19
90
Ieșire
Datele de intrare corespund restricțiilor impuse
8


Exemplu 2

Intrare
11
8
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare

# 3609 - countmod10
def validare(num1, num2):
    # Daca datele sunt invalide v-om face raise la eroarea ValueError

    if not (num1 >= 1 and num2 >= num1 and num2 <= 1000000000):
        raise ValueError


def countmod10(num1, num2):
    # Numarul de numere divizibile cu 10 din intervalul [num1, num2] 
    # este egal cu x-y, unde:
    #    x este numarul de numere divizibile cu 10 din intervalul [1, num2]
    #    y este numarul de numere divizibile cu 10 din intervalul [1, num1-1]
    #    x = num2 // 10
    #    y = (num1 - 1) // 10
    numere_div_10 = num2 // 10 - (num1 - 1) // 10

    print(numere_div_10)


if __name__ == '__main__':
    # Citim de la tastatura numerele cerute
    num1 = int(input())
    num2 = int(input())

    # Verificam daca datele introduse sunt valide
    # daca nu afisam mesajul corespunsador
    try:
        validare(num1, num2)
    except ValueError:
        print("Nu au fost respectate cerintele impuse")
    else:
        print("Datele de intrare corespund restricțiilor impuse")

        countmod10(num1, num2)