|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.09.2012, 19:59 | #1 |
Пользователь
Регистрация: 17.11.2010
Сообщений: 15
|
Увеличение быстродействия
Добрый вечер.
Задача относительно простая : найти все делители числа 600851475143. Но если делать в лоб, то это занимает ужасно много времени. Подскажите, как можно увеличить быстродействие такой программки. |
24.09.2012, 20:32 | #2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Ну собственно все числа кроме нуля, это если без спецслучаев . Или Вы имеете ввиду целые делители для получения целого числа? Тогда рассматривайте только нечетные. Далее - данное число не делится на 3 (сумма всех цифр числа не делится на три). Это значит, что данное число не будет делится на все числа, которые можно без остатка поделить на 3. То есть не будет делится на 9, 12, 15, 18 и т.д. Не будет делится на 4, потому что четное. Число не делится на 5, а значит не будет делиться и по аналогии с 3-кой - на 10, 15, 20, 25 и т.д. Тенденция ясна? Совершенно очевидно, что нужно пытаться делить только на такие числа, которые делятся на самих себя. Кроме того, я подозреваю что и данное число является простым - то есть делится только на само себя (ну и единицу естественно ибо на нее все делится) .
--ДОБАВЛЕНО--- Делится: 71*839*1471*6857
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 24.09.2012 в 20:42. |
24.09.2012, 21:13 | #3 |
Пользователь
Регистрация: 17.11.2010
Сообщений: 15
|
Спасибо) Суть ясна
А вот если увеличивать быстродействие по средством увеличения выделяемой для этой задачи памяти или что то подобное этому?) Может я не совсем правильно выразился, я только учусь Надеюсь поймете, что я хочу |
24.09.2012, 21:19 | #4 |
Форумчанин
Регистрация: 17.12.2011
Сообщений: 111
|
Вот памяти как раз таки нужно выделять ровно столько сколько нужно, не больше, не меньше. Выделение лишней памяти наоборот будет тормозить выполнение.
|
24.09.2012, 21:20 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Вы сначала составьте алгоритм без учета аппаратных требований.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
24.09.2012, 22:52 | #6 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Наваял нечто такое:
Код:
Советую почитать книгу: http://www.ozon.ru/context/detail/id/4893803/ Последний раз редактировалось Kostia; 24.09.2012 в 22:55. |
24.09.2012, 23:37 | #7 |
Пользователь
Регистрация: 17.11.2010
Сообщений: 15
|
Ооо ... спасибо ) Буду разбираться
За книгу отдельное спасибо |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Увеличение быстродействия | chui | БД в Delphi | 5 | 17.10.2011 15:48 |
MySQL - увеличение быстродействия | Linel | SQL, базы данных | 8 | 17.01.2011 13:39 |
Сравнение быстродействия | ChaosDev | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 22.11.2010 03:32 |
Вопрос быстродействия | _Денис | C++ Builder | 1 | 14.11.2009 17:00 |
Сравнение быстродействия алгоритмов | Pti44ka | Помощь студентам | 9 | 13.11.2009 13:41 |