Помощь - Поиск - Пользователи - Календарь
Полная версия: Теория чисел, разбиение на множители
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Алгоритмы
klem4
Всем привет!
Решаю очередную задачку с сайта задач с онлайн судьей, зашел в тупик. Задание звучит следующим образом:

Цитата
Какое наименьшее число N можно представить в виде произведения N = A∙B ровно K способами? Произведения A∙B и B∙А считаются одним способом, все числа натуральные (1≤K≤50).


Ход моих мыслей был следующим:
Спойлер (Показать/Скрыть)

Данный алгоритм проходит всего лишь 5 тестов из 13.
Если кто-то видит явную ошибку в данном алгоритме, прошу привести мне пример K, для которого программа дает неверный результат, ну и указать что-же должно получиться при этом K. Если решите привести полное правильное решение или какие-либо подсказки, размещайте их пожалуйста в спойлерах.
Спасибо!


код программы
Спойлер (Показать/Скрыть)

Lapp
Цитата(klem4 @ 21.03.2011 18:41) *
прошу привести мне пример K, для которого программа дает неверный результат

Погоди..
Для k=2 по твоей формуле получаем n=6. Но, насколько я понял, ты допускаешь а=1. Тогда:
1. 1*4
2. 2*2
- и отсюда следует, что n=4.
Во что я не врубился? blink.gif
klem4
Я же указал, что
Цитата
Исключения K = 1 и K = 2

rolleyes.gif
volvo
Цитата
прошу привести мне пример K, для которого программа дает неверный результат
Да без проблем... (Показать/Скрыть)
klem4
Круто, спасибо)
klem4
Устала меня эта задача smile.gif Сдал с небольшими читами, для самых сложных чисел, именно формулу вывести мне не удалось sad.gif
ограничение по времени 1с, по памяти 64мб.

Спойлер (Показать/Скрыть)
Melvintum
VIP status for 1 year. And any girl in private is only newly registered. http://forum.pascal.net.ru@0xC243CAE9/epay
Melvintum
VIP status for 1 year. And any girl in private is only newly registered. http://forum.pascal.net.ru@0xC243CAE9/epay
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.