Теория чисел, разбиение на множители |
Теория чисел, разбиение на множители |
klem4 |
21.03.2011 18:41
Сообщение
#1
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Всем привет!
Решаю очередную задачку с сайта задач с онлайн судьей, зашел в тупик. Задание звучит следующим образом: Цитата Какое наименьшее число N можно представить в виде произведения N = A∙B ровно K способами? Произведения A∙B и B∙А считаются одним способом, все числа натуральные (1≤K≤50). Ход моих мыслей был следующим: Спойлер (Показать/Скрыть)
Данный алгоритм проходит всего лишь 5 тестов из 13. Если кто-то видит явную ошибку в данном алгоритме, прошу привести мне пример K, для которого программа дает неверный результат, ну и указать что-же должно получиться при этом K. Если решите привести полное правильное решение или какие-либо подсказки, размещайте их пожалуйста в спойлерах. Спасибо! код программы Спойлер (Показать/Скрыть)
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Lapp |
22.03.2011 11:35
Сообщение
#2
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
прошу привести мне пример K, для которого программа дает неверный результат Погоди.. Для k=2 по твоей формуле получаем n=6. Но, насколько я понял, ты допускаешь а=1. Тогда: 1. 1*4 2. 2*2 - и отсюда следует, что n=4. Во что я не врубился? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
klem4 |
22.03.2011 12:53
Сообщение
#3
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Я же указал, что
Цитата Исключения K = 1 и K = 2 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
22.03.2011 20:30
Сообщение
#4
|
Гость |
Цитата прошу привести мне пример K, для которого программа дает неверный результат
Да без проблем... (Показать/Скрыть)
|
klem4 |
22.03.2011 20:50
Сообщение
#5
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Круто, спасибо)
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
klem4 |
31.03.2011 17:18
Сообщение
#6
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Устала меня эта задача Сдал с небольшими читами, для самых сложных чисел, именно формулу вывести мне не удалось
ограничение по времени 1с, по памяти 64мб. Спойлер (Показать/Скрыть)
Сообщение отредактировано: klem4 - 31.03.2011 17:20 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Текстовая версия | 9.11.2024 23:22 |