1290 - CifreGen3

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerința

Se dau două numere n m. Să se genereze toate numerele cu exact n cifre mai mici decât m cu proprietatea că prima și ultima cifră sunt egale.

Date de intrare

Programul citește de la tastatură numerele n m.

Date de ieșire

Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare.

Restricții și precizări

  • 1 ≤ n ≤ 7
  • 0 < m < 6

Exemplu 1

Intrare

3 3

Iesire

101
111
121
202
212
222

Rezolvare

def generate_numbers(n, m):
    numbers = []
    for i in range(10**(n-1), 10**n):
        num_str = str(i)
        if num_str[0] == num_str[-1] and all(int(digit) < m for digit in num_str):
            numbers.append(num_str)
    return numbers

def read_input():
    n, m = map(int, input("Enter n and m: ").split())
    if not (1 <= n <= 7):
        raise ValueError("1 ≤ n ≤ 7")
    if not (0 < m < 6):
        raise ValueError("0 < m < 6")
    return n, m

def main():
    try:
        n, m = read_input()
        numbers = generate_numbers(n, m)
        for num in numbers:
            print(num)
    except ValueError as e:
        print("Error:", e)

if __name__ == '__main__':
    main()