1

Почему, когда я ввожу простое и двузначное(или больше) число, например, 11, то вместо множителя 11, он выводит 1, 1. Помогите исправить мне ошибку.

Заранее спасибо.

    nums = int(input("Сколько чисел: "))
    for number in range(1, nums+1):
        nums2 = int(input(f"Введите число {number}: "))
        numbers.append(nums2)
    numbers.sort()
    for num in numbers:
        num2 = int(num)
        while delitels != num:
            delimiy = 1
            while delimiy < num2:
                delimiy += 1
                if num2 % delimiy == 0:
                    break
            num2 /= delimiy
            delitels = delitels * delimiy
            deliteli2 += str(delimiy)
        alldels3.append(deliteli2)
        delitels = 1
        deliteli2 = []
        print(alldels3)

1 Answers1

1

Дело в этой строке

deliteli2 += str(delimiy)

Если вы делаете += для списка, то это даёт тот же результат, что и метод extend. Подробнее можно прочитать здесь.

Таким образом ваша строка не добавляется к списку, как один элемент. Вместо этого интерпретатор посимвольно итерируется по строке, и добавляет к списку каждый символ как отдельный элемент.

Чтобы ваш код работал так, как вы хотите, замените эту строку на

deliteli2.append(delimiy)

PS: И в будущем когда приводите в вопросе код, убедитесь, что он вообще запускается. Иначе вероятность того, что вам помогут, сильно снижается.

Xander
  • 20,499