Найдите самый маленький натуральный делитель числа x, отличный от 1 (2 <= x <= 30000).
Входные данные
Вводится натуральное число x.
Выходные данные
Выведите наименьший делитель числа x, отличный от 1.
Хотел бы узнать, возможно ли решение без использования break?
x = int(input())
for i in range(2, x + 1):
if x % i == 0:
print(i)
break
Riita 3 / 2 / 1 Регистрация: 07.09.2017 Сообщений: 27 |
||||
1 |
||||
09.09.2017, 17:25. Показов 193333. Ответов 14 Метки нет (Все метки)
Есть задача: Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1. Пыталась, написала так, только получается не наименьший делитель, а все возможные делители отличные от 1 :с
Помогите решить, чтоб выводило только наименьший
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
09.09.2017, 17:25 |
14 |
Dominatrix 33 / 30 / 16 Регистрация: 21.01.2014 Сообщений: 101 |
||||
09.09.2017, 21:57 |
2 |
|||
РешениеНу, как бы всё очевидно — нужно всего лишь выйти из цикла при обнаружении первого (он и есть наименьший) делителя:
0 |
3 / 2 / 1 Регистрация: 07.09.2017 Сообщений: 27 |
|
09.09.2017, 22:05 [ТС] |
3 |
Спасибо) Упс, забыла про break
0 |
easybudda Модератор 11758 / 7258 / 1720 Регистрация: 25.07.2009 Сообщений: 13,272 |
||||
09.09.2017, 22:25 |
4 |
|||
Просто на курсе объяснялось, что эту команду лучше не использовать Как-нибудь обосновывали, или нужно было на слово поверить?
или здесь больше нет вариантов? Да полно!
только надо убедиться, что переданное число не меньше двух…
1 |
3 / 2 / 1 Регистрация: 07.09.2017 Сообщений: 27 |
|
09.09.2017, 22:41 [ТС] |
5 |
Ну вот решила поверить, думала люди создавшие видео-курс говорят только правильные вещи и надо их беспрекословно слушать
0 |
easybudda Модератор 11758 / 7258 / 1720 Регистрация: 25.07.2009 Сообщений: 13,272 |
||||
09.09.2017, 23:11 |
6 |
|||
Решение
Ну вот решила поверить «Верить нельзя никому, даже самому себе! Мне можно…» (с)
дошла только до цикла while
0 |
3 / 2 / 1 Регистрация: 07.09.2017 Сообщений: 27 |
|
09.09.2017, 23:39 [ТС] |
7 |
Эм, не пойму почему после n % 1 нет = и какого-то результата и как в принципе работает этот код, что он дает правильный ответ? ._.
0 |
33 / 30 / 16 Регистрация: 21.01.2014 Сообщений: 101 |
|
09.09.2017, 23:45 |
8 |
не пойму почему после n % 1 нет = и какого-то результата n % i эквивалентно n % i == 1
1 |
3 / 2 / 1 Регистрация: 07.09.2017 Сообщений: 27 |
|
09.09.2017, 23:51 [ТС] |
9 |
Ааа, теперь ясно, буду знать
0 |
Модератор 11758 / 7258 / 1720 Регистрация: 25.07.2009 Сообщений: 13,272 |
|
10.09.2017, 00:37 |
10 |
Ааа, теперь ясно, буду знать Немного не так: результат выражения равный нулю трактуется как False, неравный — True
0 |
tana256 0 / 0 / 0 Регистрация: 01.01.2019 Сообщений: 2 |
||||
01.01.2019, 19:18 |
11 |
|||
Начала изучать Python, помогите пожалуйста, с поиском ошибки в задачи. Система выдает сообщение на 14 тесте: «Превышено максимальное время работы» и оценивает 13 баллов из 100
Миниатюры
0 |
0 / 0 / 0 Регистрация: 01.01.2019 Сообщений: 2 |
|
01.01.2019, 21:34 |
12 |
Пересмотрела все варианты которые выше и в похожых темах, этот ответ система оценила наибольшим количеством балов 13.
0 |
Модератор 11758 / 7258 / 1720 Регистрация: 25.07.2009 Сообщений: 13,272 |
|
02.01.2019, 06:03 |
13 |
«Превышено максимальное время работы» Вообще для интерпретируемого языка проблема скорее надуманная… Но в принципе можно и ускорить.
1 |
Alexey_Boroduli 1 / 1 / 0 Регистрация: 24.02.2019 Сообщений: 8 |
||||
24.02.2019, 16:50 |
14 |
|||
Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.
1 |
Ergo_py 2 / 2 / 0 Регистрация: 24.08.2020 Сообщений: 15 |
||||
25.08.2020, 09:49 |
15 |
|||
2 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
25.08.2020, 09:49 |
Помогаю со студенческими работами здесь Дано натуральное число. Найти его наименьший делитель, отличный от 1 Дано натуральное число. Найти его наименьший делитель, отличный от 1 Выведите наименьший натуральный делитель, отличный от 1
Решение оформите в… Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 15 |
Skip to content
Задача «Минимальный делитель»
Условие
Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.
Решение задачи от разработчиков на Python:
Другое решение задачи на Python:
Смотреть видео — Задача «Минимальный делитель» решение на Python
Делитесь с друзьями ссылкой на ответ и задавайте вопросы в комментариях! 👇
Related Posts
Не слишком ли это простой вопрос? Очевидно, что надо лишь делить циклически на числа, начиная с 2, и проверять — делят ли они исходное число.
for i in range(2, x+1):
if not x % i:
print(i)
break
Если число большое, то лучше остановить цикл на корне от x:
import math
for i in range(2, int(math.sqrt(x))+1):
if not x % i:
print(i)
break
else:
print(x)
Описание задачи
Эта программа принимает на вход целое число и выводит его наименьший делитель.
Решение задачи
- Принимаем на вход целое число, введенное пользователем, и записываем его в переменную.
- Используем цикл
for
, значения которого варьируются в диапазоне от 2 до данного целого числа. - Если число из этого диапазона делит данное число без остатка, оно добавляется в специально созданный для этого список.
- Затем список сортируется и минимальное число из него выводится на экран.
- Конец.
Исходный код
Ниже дан исходный код для нахождения и вывода наименьшего делителя. Результаты работы программы также даны ниже.
n = int(input("Введите целое число:")) a = [] for i in range(2, n+1): if(n % i == 0): a.append(i) a.sort() print("Наименьший делитель равен:", a[0])
Объяснение работы программы
- Пользователь вводит целое число, которое записывается в переменную.
- Задаем цикл
for
от 2 до введенного числа. - Если остаток от операции деления равен 0, это означает, что данное число является делителем. Эта проверка осуществляется при помощи оператора деления по модулю
%
. - После этого данный делитель добавляется в список.
- Затем список сортируется и его минимальный элемент выводится на экран.
Результаты работы программы
Пример 1: Введите целое число:75 Наименьший делитель равен: 3 Пример 2: Введите целое число:64 Наименьший делитель равен: 2