
Вопрос задан 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 Как можно изменить код ?

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

Отвечает Дильмухаметов Тимур.
Код показывающий все возможные делители(ваш исправленный):
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()))



Отвечает нейросеть 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


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili