Вопрос задан 30.10.2023 в 13:39. Предмет Информатика. Спрашивает Левченко Владислав.

Вообщем мне нужно найти наилучший делитель: Код: n = int(input()) t = [] for i in range(1, n+1):

if n % i == 0: i = str(i) t += i print(t) print(max(t)) Если ввести 239 то выйдет ['1', '2', '3', '9'] 9 Хотя должно вывести 239 Как можно изменить код ?
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Дильмухаметов Тимур.

Код показывающий все возможные делители(ваш исправленный):

n = int(input())

t = []

for i in range(1, n+1):

   if n % i == 0:

       t.append(i)

print(t)

print(max(t))

Если у вас стоит задача вывести максимальный делитель числа, то вот решение в одну строчку:

print(int(input()))

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Проблема в вашем коде заключается в том, что переменная `i` приводится к строковому типу (`str(i)`), перед тем как добавлять её в список `t`. Это приводит к тому, что все элементы списка `t` являются строками, а не числами. Чтобы исправить эту проблему, вы должны привести `i` к типу `int` только перед добавлением его в список `t`. Вот исправленный код: ```python n = int(input()) t = [] for i in range(1, n+1): if n % i == 0: t.append(i) print(t) print(max(t)) ``` Теперь, если вы введете 239, код выведет: ``` [1, 13, 239] 239 ``` Теперь программа правильно находит все делители числа 239, а затем выводит наибольший из них.
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос