zambaldzr
|
|
1 | |
В интервале от a до b найти число с наибольшим количеством делителей26.09.2012, 22:46. Показов 10821. Ответов 35
Метки нет (Все метки)
|
26.09.2012, 22:46 | |
Ответы с готовыми решениями:
35
В заданном интервале найти число, с наибольшим количеством делителей Найти в диапазоне от M до N число с наибольшим количеством делителей. Функция: количество делителей заданного числа Найти в диапазоне от M до N число с наибольшим количеством делителей. Дано число P, нужно найти число от 1 до Р, с наибольшим количеством делителей |
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
27.09.2012, 15:56 | 22 |
Кто бы спорил
я просто прикинул что если даже секунду проходит 100 000 000 итераций цикла (это слишком оптимистично) то 3 алгоритм (не оптимизированный) будет продолжатся 10 000 секунд а это около 3 часов будет 5 000 секунд слишком долго ждать, жизнь коротка
0
|
83 / 3 / 1
Регистрация: 14.11.2011
Сообщений: 68
|
|
27.09.2012, 16:25 | 23 |
ValeryS, спасибо за код
сейчас попробую перебрать все для себя и с математикой наконец разобраться
0
|
83 / 3 / 1
Регистрация: 14.11.2011
Сообщений: 68
|
||||||
27.09.2012, 18:11 | 25 | |||||
как я понял,мой ход мыслей был правильный,но меня сбивало непонимание функций
теперь мучаюсь с массивом, нужно вывести несколько чисел, если у них одинаковое максимальное число делителей
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||
27.09.2012, 18:11 | 26 | |||||
Thinker, вот как твою функцию компильнул VS2008
вообще ни одного ветвления
но если long long сразу пошли jz jnz....
1
|
27.09.2012, 18:30 | 27 | |||||
Вот еще быстрее вариант
1
|
83 / 3 / 1
Регистрация: 14.11.2011
Сообщений: 68
|
|
27.09.2012, 21:12 | 30 |
ValeryS, что требуется изменить в коде,чтобы числа в массив записывались и выводились в строку.если имеют одинаковое кол-во делителей?
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||
27.09.2012, 21:32 | 31 | |||||
здесь я вижу такое решение
выделить нахождение общих делителей в отдельную функцию в первом цикле ты ищешь число с максимальным количеством делителей во втором цикле сравниваешь и выводишь на экран(без записи в массив) например так fnc это функция нахождения общих делителей MaxCount максимальное число общих делителей
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
28.09.2012, 03:20 | 32 | |||||
Вариант (при поиске в большом интервале будет самым быстрым из здесь приведенных):
2
|
28.09.2012, 14:26 | 33 | |||||
Сообщение было отмечено как решение
Решение
valeriikozlov, вот функция, которая работает быстрее, чем все предыдущие функции данного раздела, причем в разы
3
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
28.09.2012, 17:53 | 34 |
я хотел этот вариант тоже показать, но в следующем посте.
А вот это уже интересно было бы увидеть.
1
|
28.09.2012, 18:24 | 35 |
Вы наверное у же видели вариант с дополнительной памятью
Быстрое нахождение количества делителей натурального числа пока только в этом направлении вижу ускорение алгоритма. Хотелось бы, чтобы модераторы отнесли ту тему в большую коллекцию решенных задач , так как такая тема актуальна, часто возникает и очень удобно ее найти там будет, но они почему-то не хотят... valeriikozlov, спасибо Вам за свой алгоритм, он натолкнул меня на мысль, что отбрасывать делители ( n /= i) эффективнее, что так и оказалось, поэтому алгоритм из поста 33 получился быстрым.
1
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
28.09.2012, 19:14 | 36 |
нет не видел, только сейчас посмотрел.
Давайте вместе попросим. Я тоже прошу. Не за что.
1
|
28.09.2012, 19:14 | |
28.09.2012, 19:14 | |
Помогаю со студенческими работами здесь
36
Найти число с наибольшим количеством делителей из числового промежутка Найти в диапазоне от M до N число с наибольшим количеством делителей. PHP Дано n целых чисел. Найти среди них число с наибольшим количеством делителей Найти и вывести первое число в интервале a, b с количеством делителей равным c Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |