|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.03.2015, 17:44 | #31 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Дык это-то понятно.. именно время и интересовало.. Спасибо!
|
20.03.2015, 09:37 | #32 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Оптимизировал SumDel вообще летать стало 10^7 чуть больше секунды
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
20.03.2015, 10:01 | #33 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
11.07.2015, 16:43 | #34 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Ночевать пришлось вместе без интернета - вспомнил эту задачу..
А что если разложить число на множители : 900 = 2*2*3*3*5*5 (их не больше log2(n)) Прекрасно. Теперь делаем такую красоту : бежим по этим множителям, ища их произведение : Получаем алгоритм, который на k-ом шаге берет произведение k первых множителей. А дальше у нас будет массив простых чисел (их 664579 (до 10^7)) и там бинарным поиском ищем число больше нашего и меньше нашего (но ближайщие к полученному). А дальше эти два умножаем на оставшиеся. Получаем (log2(n))^2 * (18) Летать будет, не? Правда нужно сохранить эти 664579 числа.. А это 4 байта на брата итого 2мб.. сойдет, не? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вычислить произведение чисел, неравных заданному числу Z | Hug | Помощь студентам | 4 | 12.11.2013 23:27 |
найти кол-во трехзначных чисел сумма простых делителей которых кратна 5 (на Делфи) | anzorchik | Помощь студентам | 2 | 02.10.2011 16:18 |
Определить ближайший элемент массива к заданному числу | wowan | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 28.05.2011 23:21 |