2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Делители
Сообщение31.08.2012, 05:38 


01/08/11
32
Добрый день!

Подскажите, пожалуйста, алгоритм для быстрого нахождения списка делителей
натурального числа. Пока что дошел до разложения на простые и построения
всех комбинаций, но до сих пор все это не очень быстро, подозреваю, что можно лучше.

 Профиль  
                  
 
 Re: Делители
Сообщение31.08.2012, 06:16 


26/01/10
959
yestlmush в сообщении #612832 писал(а):
Добрый день!

Подскажите, пожалуйста, алгоритм для быстрого нахождения списка делителей
натурального числа. Пока что дошел до разложения на простые и построения
всех комбинаций, но до сих пор все это не очень быстро, подозреваю, что можно лучше.


Что значит "не очень быстро"? Список делителей Вы быстрее чем за O("количество делителей") не построите. Перебрать же все комбинации степеней простых чисел, входящих в делитель, не так сложно.

Если у Вас не очень быстро, то может проблема в реализации, а не в алгоритме? Надо бы уточнить...

 Профиль  
                  
 
 Re: Делители
Сообщение31.08.2012, 06:33 
Заслуженный участник


08/04/08
8562
Можете хотя бы тут узнать, насколько эта задача сложная.

 Профиль  
                  
 
 Re: Делители
Сообщение31.08.2012, 07:48 


26/01/10
959
Sonic86 в сообщении #612835 писал(а):
Можете хотя бы тут узнать, насколько эта задача сложная.

Она "вычислительно сложная", но не сложная в смысле программирования, это всё-таки разные вещи (или вы опять невнимательно прочитали?). Мне интересно, чего хочет автор, зная, что список делителей будет очень длинным и чего он хочет ускорять.

 Профиль  
                  
 
 Re: Делители
Сообщение31.08.2012, 14:11 


01/08/11
32
Zealint в сообщении #612834 писал(а):
Что значит "не очень быстро"? Список делителей Вы быстрее чем за O("количество делителей") не построите. Перебрать же все комбинации степеней простых чисел, входящих в делитель, не так сложно.

Если у Вас не очень быстро, то может проблема в реализации, а не в алгоритме? Надо бы уточнить...


Да, но что если мы хотим находить делители множества чисел от 1 до N ? Может быть, можно
использовать что-то типа решета?

 Профиль  
                  
 
 Re: Делители
Сообщение31.08.2012, 15:59 
Заслуженный участник


04/05/09
4587
Чтобы найти простые делители всех чисел до N действительно можно использовать решето (Эратосфена), достаточно только всем составным прописывать не просто флаг "составное" а сам (простой) делитель. А потом из этого массива можно будет быстро находить все простые делители любого числа.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group