1567 - Sum Prim Doi

De la Universitas MediaWiki

sursa: [1]

Cerinţa

Se citesc numere naturale până când se introduce numărul 0. Afișați suma obținută prin adunarea numerelor formate din primele două cifre ale numerelor citite.

Date de intrare

Programul citește de la tastatură numere până când se introduce 0.

Date de ieşire

Programul va afișa pe ecran suma numerelor formate din primele 2 cifre ale numerelor citite.

Restricții și precizări

  • Numerele cu mai puțin de 2 cifre nu se iau în considerare.
  • Numerele sunt mai mici decât 100.000.
  • Dacă nu avem numere de cel puțin 2 cifre, atunci se va afișa 0.

Exemplu

Intrare
3455 66 7 8 22 11221 0
Ieșire
Datele introduse sunt valide.
133

Explicație

34 + 66 + 22 + 11 = 133.

Rezolvare

def este_numar_valid(numar):
    """
    Verifică dacă un număr are cel puțin 2 cifre.
    """
    return numar >= 10


def obtine_primele_doua_cifre(numar):
    """
    Returnează primele două cifre ale unui număr.
    """
    return int(str(numar)[:2])


if __name__ == "__main__":
    # Inițializăm suma cu 0
    suma = 0

    # Citim numere până când se introduce 0
    while True:
        try:
            numar = int(input("Introduceți un număr natural (0 pentru a încheia citirea): "))
        except ValueError:
            print("Introduceți un număr natural valid!")
            continue

        # Verificăm dacă numărul are cel puțin 2 cifre
        if not este_numar_valid(numar):
            if numar == 0:
                print("Citire încheiată!")
                break
            else:
                print("Numărul introdus nu are cel puțin 2 cifre. Introduceți alt număr.")
                continue

        # Adunăm primele două cifre ale numărului la suma
        suma += obtine_primele_doua_cifre(numar)
    print("Datele sunt introduse corect.")
    # Afișăm suma obținută
    print(f"Suma numerelor formate din primele două cifre ale numerelor citite este: {suma}")