|
0 / 0 / 0
Регистрация: 10.10.2021
Сообщений: 10
|
|
Найти сумму целых чисел из промежутка [n1; n2], у которых ровно 5 делителей10.10.2021, 18:42. Показов 3157. Ответов 16
Метки нет (Все метки)
Найти сумму целых чисел из промежутка [n1; n2], у которых ровно 5 делителей. Каждое
из таких чисел выдать на печать.
0
|
|
| 10.10.2021, 18:42 | |
|
Ответы с готовыми решениями:
16
|
|
Модератор
10442 / 5734 / 3406
Регистрация: 17.08.2012
Сообщений: 17,443
|
||||||
| 10.12.2021, 00:45 | ||||||
Сообщение было отмечено Mallina как решение
Решение
Можно, конечно, перебирать все числа, и проверять, имеет ли текущее число ровно пять делителей. Но - это так себе идея, поскольку при большом интервале [n1; n2] программа будет настолько медленно работать, что результат придётся ждать НЕСКОЛЬКО ДНЕЙ. Подобная задача есть вот в этой теме: Найдите все числа, принадлежащие заданному отрезку, у которых ровно пять различных нечётных делителей. Там все программы считают очень-очень долго, кроме программы, которую написал я в последнем сообщении, она выдаёт результат практически мгновенно (по моим оценкам, примерно за четверть секунды). Так что... Будем писать человеческое решение.
Итак, повторим предварительные соображения применительно к Вашему заданию. Заметим, что в Вашем задании говорится про целые числа, а не про натуральные. Будем искать только положительные делители числа, поскольку количество всех делителей числа чётное (количества отрицательных и положительных делителей одинаковые, и сумма этих двух равных чисел является чётным числом). Нечётное количество (положительных) делителей может быть только у чисел, модуль которых является полным квадратом. У таких чисел, кроме чисел -1, 0, 1, модуль числа имеет минимум 3 делителя: 1, корень квадратный из модуля числа и модуль числа. Остальные делители, если они есть, располагаются поровну в интервалах от 2 до корня из модуля числа - 1 и от корня из модуля числа + 1 до половины модуля числа. Таким образом, чтобы число имело ровно 5 делителей, достаточно, чтобы модуль числа был полным квадратом и имел ровно один делитель в интервале от 2 до корня из модуля числа - 1. Будем проверять на количество делителей только вышеупомянутые числа, для этого удобно использовать цикл не по самим числам, а по корням квадратным из модулей чисел, умноженных на знаки чисел. В цикле из значения счётчика будем получать модули чисел, и проверять их на количество делителей, и, если количество делителей равно 5, печатать число и добавлять его к сумме. Необходимо будет предварительно для числа n1 найти наименьшее большее число, входящее в интервал, а для n2 наибольшее меньшее число, входящее в интервал, такие, чтобы модули их были полными квадратами. Пишем программу.
2
|
||||||
|
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
|
|||||||
| 10.12.2021, 06:35 | |||||||
Сообщение было отмечено Mallina как решение
Решение
Cyborg Drone, можно использовать такой факт из теории чисел
3
|
|||||||
|
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
|
|
| 10.12.2021, 11:20 | |
|
thyrex, всё красиво, кроме того, что Вы явно забыли, что целые числа бывают и отрицательными.
попробуйте своей программой определить, сколько чисел имеют ровно 5 делителей в диапазоне от -100 до -1
0
|
|
|
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
|
|
| 10.12.2021, 15:58 | |
|
mr-Crocodile, в задачах подобного плана (на число делителей) отрицательные числа не используются по умолчанию. Подобные задачи и такие закономерности из теории чисел полезны скорее для олимпиадного программирования, или для подготовки к ЕГЭ. А даже ЕГЭ в России, насколько я понял, сдают не все.
1
|
|
|
0 / 0 / 0
Регистрация: 10.10.2021
Сообщений: 10
|
||||||
| 10.12.2021, 16:48 [ТС] | ||||||
0
|
||||||
|
Модератор
|
||||
| 10.12.2021, 18:22 | ||||
А пока извините, Целые числа -- расширение множества натуральных чисел, получаемое добавлением к нему нуля и отрицательных чисел. Натуральные числа -- числа, возникающие естественным образом при счёте (1, 2, 3, 4, 5, 6, 7 и так далее). Добавлено через 3 минуты Тут играем, тут не играем, тут рыбу заворачивали.
2
|
||||
|
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
|
||
| 11.12.2021, 08:21 | ||
|
0
|
||
|
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
|
|
| 11.12.2021, 09:08 | |
|
А где сказано в условии, что делители должны быть только натуральными? Стало быть у любого отрицательного числа всегда четное число делителей.
А для натуральных чисел и делители могут быть только натуральными.
0
|
|
|
Модератор
|
||
| 11.12.2021, 09:30 | ||
|
1 (1, -1), 2 (1, 2, -1, -2), ... Речь в задании шла о сумме делителей целых чисел , а не о сумме целых делителей целых чисел. Почувствовали разницу? Замечание mr-Crocodile к коду было о целых числах из условия, а не о целых делителях. Согласитесь, та же огромная разница. Добавлено через 3 минуты То есть замечание по сути о том, что: 1) не хватает Abs, 2) не хватает проверки для случая p1>p2.
1
|
||
|
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
|
|||
| 11.12.2021, 10:16 | |||
|
Я разницу давно почувствовал: нужно сначала уточнять у автора темы точную формулировку задания и только потом потом писать алгоритм решения, а не строить домыслы. Когда не знали о существовании отрицательных чисел, вопрос решался сам собой: натуральные числа, натуральные делители. Только в этом случае их количество может быть нечетным. А предполагать, что у натуральных чисел есть еще и ненатуральные делители - это во времена инквизиции прямая дорога на костер
![]() А в поисках формулировок откройте любое задание №25 из ЕГЭ по информатике. Там все весьма прозрачно. К сожалению, статьи на сайте журнала «Информатика в школе» не доступны без платной подписки любому желающему. В одной из них и описывается методика решения задач на данную тему, в которых полный перебор нерационален. Общая формулировка подобных задач
На сим предлагаю все же закончить дебаты по данной теме.
1
|
|||
|
Модератор
|
|||||
| 11.12.2021, 10:34 | |||||
|
Добавлено через 1 минуту Добавлено через 1 минуту Решение одного частного случая из условия задачи не является решением задачи, не так ли? Добавлено через 4 минуты Еще раз: -100 целое число? Да. -1 целое число? Да. Отрезок [-100;-1] соответствует условию "целые числа, принадлежащие числовому отрезку [n1; n2]"? Да. Код выводит правильный ответ для этого отрезка? Если ДА -- решение для этого отрезка верное. Если НЕТ -- решение неверное. Добавлено через 1 минуту Бонус: решение из #3 может быть модифицировано для общего случая? Да. Добавлено через 6 минут Хинт: при модификации стоит держать в уме и отрезок [-100;100]
1
|
|||||
|
Модератор
10442 / 5734 / 3406
Регистрация: 17.08.2012
Сообщений: 17,443
|
|||||||
| 12.12.2021, 10:45 | |||||||
1
|
|||||||
| 13.12.2021, 11:26 | |
|
Не по теме: боюсь, что автор вопроса, Mallina, окончательно запуталась и потерялась в обсуждении...
0
|
|
|
0 / 0 / 0
Регистрация: 10.10.2021
Сообщений: 10
|
|
| 13.12.2021, 12:28 [ТС] | |
|
mr-Crocodile, все очень интересно, я в теме. Я неожидала, что данная задача вызовет такой интерес, хах
0
|
|
|
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
|
|
| 13.12.2021, 13:28 | |
|
Mallina,
![]() да уж. задачка-то на теорию чисел. Вышло неожиданно интересно, познавательно и остро! ![]() и я крайне настоятельно рекомендую отказаться от того алгоритма, что использовался у тебя в пост #6, а взять алгоритм Cyborg Drone. Ну, а если ты уверена, что у тебя числа n1,n2 - это ИСКЛЮЧИТЕЛЬНО натуральные числа (то есть отрицательных по условию быть не может), тогда можешь брать код thyrex.
2
|
|
| 13.12.2021, 13:28 | |
|
Помогаю со студенческими работами здесь
17
Найти сумму целых чисел из промежутка от 1 до 200, у которых ровно 5 делителей
Найти все числа из промежутка от a до b, у которых ровно 5 делителей Найти все целые числа, из промежутка от a до b у которых ровно n делителей
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|