1290 - CifreGen3

De la Universitas MediaWiki

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()