3619 - Gen Nr Patru Cifre

De la Universitas MediaWiki

Sursă: [1]

Cerinţa

Dându-se cifrele c1 și c2, să se afișeze toate numerele de patru cifre care îndeplinesc următoarele condiții:

Cifra miilor este mai mare sau egală cu c1.
Cifra zecilor este mai mică sau egală cu c2.
Cifrele sutelor și unităților sunt egale și pare.

Date de intrare

Programul citește de la tastatură cifrele c1 și c2.

Date de ieşire

Dacă datele introduse sunt corecte, pe ecran se va afișa "Datele introduse sunt corecte.", apoi programul va afișa pe câte un rând, în ordine crescătoare, numerele de patru cifre care îndeplinesc condițiile. În caz contrar, se va afișa pe ecran mesajul "Datele introduse nu sunt corecte.".

Restricții și precizări

  • 0 ⩽ c1, c2 ⩽ 9

Exemplu

Intrare
8 1
Ieșire
Datele introduse sunt corecte.
8000
8010
8202
8212
8404
8414
8606
8616
8808
8818
9000
9010
9202
9212
9404
9414
9606
9616
9808
9818

Rezolvare

def validare_date(c1, c2): # Verificam daca c1 si c2 sunt in intervalul [0,9]
    if not (0 <= c1 <= 9) or not (0 <= c2 <= 9):
        return False
    return True


def afisare_numere(c1, c2):
# Iteram prin cifrele miilor
    for m in range(c1, 10):
# Iteram prin cifrele sutelor, care sunt egale cu cifrele unitatilor si trebuie sa fie pare
        for s in range(0, 9, 2):
# Iteram prin cifrele zecilor
            for z in range(c2+1):
# Formam numarul de patru cifre cu cifra miilor, cifra sutelor, cifra zecilor si cifra unitatilor
                num = m*1000 + s*100 + z*10 + s
                print(num)


if __name__ == '__main__':
# Citim cifrele c1 si c2 de la tastatura si le convertim la int
    cifra1, cifra2 = map(int, input("Introduceti cifrele c1 si c2: ").split())
    if not validare_date(cifra1, cifra2):
        print("Datele introduse nu sunt corecte.")
        return
    print("Datele introduse sunt corecte.")
    afisare_numere(cifra1, cifra2)