|
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 4
|
|
Для заданного натурального A найти минимальное натуральное N такое, что N в степени N делится на A31.05.2013, 23:59. Показов 5450. Ответов 5
Метки нет (Все метки)
Прошу помогите с заданием! Для заданного натурального A найти минимальное натуральное N такое, что N в степени N делится на A (1<=A<=10 в 9 степени). Нашёл программу для решения в лоб, но она вызывает переполнение типа уже когда A>23. Есть даже алгоритм правильного решения, но застрял на реализации.
Алгоритм
Для решения этой задачи нам потребуются некоторые математические знания. Любое число можно представить в виде двух наборов чисел: один из них - его простые делители, другой в каждом элементе содержит степень этого делителя. Т.е. числу 12 будет соответствовать набор ((2, 3), (2, 1)) - 12 = 2^2 * 3^1.
Чтобы число (X) делилось на другое число (Y) необходимо, чтобы для каждого простого делителя степень этого делителя у числа X была больше либо равна степени того же простого делителя у числа Y. Для начала разобьем число A на простые делители. Заведем два массива, в первом будем хранить значения простых делителей, а во втором - их степени (назовем этот массив k). Будем считать, что число 1 встречается 1 раз - занесем это до начала цикла, это поможет избежать отдельной обработки числа 1. Устроим цикл (i) от 2 до A и будем считать, какие и сколько делителей встречается. При правильном выполнении этих операций мы получим два массива, по которым можно однозначно восстановить число. Теперь посчитаем число K из которого затем будем получать число N. Т.к. в составлении числа N должны присутствовать все простые делители, которые имеет число A, то K будет равно произведению всех простых делителей числа A со степенью 1. Т.е. числу K будет соответствовать тот же массив простых делителей, что и числу A, а все их степени будут равны 1. Устроим цикл (j) от 1 до A, в котором будем перебирать "дополнительный множитель" для числа K. Т.е. мы получаем рабочее N = K * j. Разобьем j на том же наборе простых делителей на степени (назовем этот массив nk) и проверим следующее условие: если для всех делителей (nk[i] + 1) * K * j >= k[i], то выводим число K * j - это и будет ответ, иначе переходим к следующему шагу цикла по j.
0
|
|
| 31.05.2013, 23:59 | |
|
Ответы с готовыми решениями:
5
Для заданного A найти минимальное N такое, что N в степени N делится на A (найти ошибку) Для заданного натурального A найти минимальное натуральное N такое, что N в степени N делится на A |
|
168 / 90 / 80
Регистрация: 07.10.2012
Сообщений: 145
|
||||||
| 01.06.2013, 19:10 | ||||||
1
|
||||||
|
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 4
|
|
| 01.06.2013, 20:36 [ТС] | |
|
Не корректно работает для некоторых чисел, например если a=12, то он выдает n=3, но 33 не поделится нацело на 12. А для A=8 вообще выводит N=2.
0
|
|
|
168 / 90 / 80
Регистрация: 07.10.2012
Сообщений: 145
|
|
| 01.06.2013, 20:44 | |
|
Ты уверен что правильно переписал? http://ideone.com/7w6xO0
1
|
|
|
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 4
|
|
| 01.06.2013, 20:49 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 4
|
|
| 03.06.2013, 18:55 [ТС] | |
|
0
|
|
| 03.06.2013, 18:55 | |
|
Помогаю со студенческими работами здесь
6
Найти минимальное натуральное N такое, что N в степени N делится на A Найти такое максимальное число М, что N! делится на Р в степени М, но не делится на Р в степени М+1 Найдите такое минимальное натуральное n, что Bn делится на A
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|