В ответе показивает несколько ответов вместо одного , Подскажите пожалуйста почему оно видает 2 ответа?

n = int(input())
if n == 1 or (n % 20) - 1 == 0:
    print(n, 'программист')
x = 2
while x < 5:`введите сюда код`
    if n == x or (n % 20) - x == 0:
        print(n, 'программиста')
    x += 1
z = 11
a = 31
while z < 1000:
    if n == a:
        print(n, 'программист')
        break
    if (n % 20) - z == 0 and n != z + 100:
        print(n, 'программист')
    z += 100
z = 12
while 1000 > z:
    if (n % 100) // 10 in (3, 5, 7, 9):
        print(n, 'программиста')
        break
    if (n % 20) - z == 0:
            print(n, 'программиста')
    z += 100
else:
    print(n, 'программистов')

​​

Test input: 12 Test output: 12 программиста 12 программистов


Ответы (1 шт):

Автор решения: magistar

Вот здесь, в предпоследнем операторе, выполняется условие:

if (n % 20) - z == 0:
            print(n, 'программиста')

Так как n % 20 будет 12, и 12 - 12 = 0. Поэтому и выводит лишнее.

→ Ссылка