|
0 / 0 / 0
Регистрация: 11.12.2018
Сообщений: 21
|
|
Получить все числа, в разложении которых на простые множители, каждый множитель входит ровно два раза11.12.2018, 23:04. Показов 2732. Ответов 9
Метки нет (Все метки)
Дано натуральное число n. Получить все числа меньшие n, в разложении которых на простые множители, каждый множитель входит ровно два раза. C++
0
|
|
| 11.12.2018, 23:04 | |
|
Ответы с готовыми решениями:
9
Проверить верно ли, что в разложении числа на простые множители все множители различны Встречаются ли в разложении числа на простые множители одинаковые множители? |
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||||||
| 12.12.2018, 00:03 | ||||||
|
Простое решение в лоб. Возможно есть более красивые и оптимальные.
0
|
||||||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||||||
| 12.12.2018, 01:19 | ||||||
|
rom_kach, здравствуйте! Вот еще такой вариант:
1
|
||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||
| 12.12.2018, 01:21 | ||||||
|
Господа! Если не лениться и приложить на секунду палец к носу, то совершенно очевидно, что требуемые числа обязаны быть полными квадратами. Поэтому даже не стоит эти квадраты перебирать. А перебирать надо
0
|
||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|||||||||||||||||||||||
| 12.12.2018, 04:44 | |||||||||||||||||||||||
Часто восхищаюсь вашими идеями и мечтаю хотя бы приблизиться к вашему уровню знаний. Чтобы выдавать хорошие решения, нужно уметь думать (не уверен, что мне это дано) и думать (что часто бывает лень), вот и получаются такие грубые наброски, не выдерживающие никакой критики.Сравнение количества действий до и после оптимизации
До оптимизации (n = 100 000, для большего значения результатов не дождался):
Программа с учетом замечаний
2
|
|||||||||||||||||||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||||
| 12.12.2018, 12:48 | ||||||||
|
valen10, приятно, когда твои слова падают на плодородную почву.
![]() Спасибо за интересное исследование. ![]() Добавлено через 25 минут valen10, посмотрел ваш код. Немножко косметики (на эффективность практически не влияет)
1
|
||||||||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||||||
| 12.12.2018, 13:49 | ||||||
Сообщение было отмечено Nishen как решение
Решение
rom_kach, вот оптимизированный вариант с учетом всех пожеланий:
1
|
||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|||||||||||||||||||||||||||||||||
| 12.12.2018, 18:07 | |||||||||||||||||||||||||||||||||
Сообщение было отмечено Nishen как решение
РешениеНа первый взгляд, простое сравнение разменивается на более тяжелую операцию умножения. Поверхностный анализ и остаточные знания о предсказаниях перехода и спекулятивном исполнении шепчут "не делай так". Но руки, как говорится, чешутся. Оставив тщетные попытки осознать происходящее, перешел к действиям. После замены i на
Глупые циклы vs Хитрое умножение
Было подготовлено несколько вариантов программы с Для желающих повторить измерения оставлю все используемые тексты. Исходный код программы
build.sh
test.sh
Краткие итоги (в секундах). x86 почему-то опережает x86_64. Что я делаю не так?!
Ничего существенного за это время не сделаешь, но разница ощутимая. Незначительная на первый взгляд оптимизация при больших значениях n дает значительный выигрыш по времени. Байт, ваше решение вновь занимает первое место. С вашими комментариями мир и правда становится чуточку лучше (или на микрон умнее? Уже запутался).
1
|
|||||||||||||||||||||||||||||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 12.12.2018, 18:58 | ||
|
Ну, то что I2 эффективнее, чем I - это очевидно. Не ожидал, правда, что настолько. А вот интересно, результат-то (count) всюду одинаковый? И еще вопрос совсем уж дурацкий. Вы не могли данные перепутать?
0
|
||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||||||||
| 13.12.2018, 00:01 | ||||||||
|
Кликните здесь для просмотра всего текста
Немного поискал информацию о таком поведении. Зависит от случая к случаю. Чтобы понять причины, там предлагают выполнить дизассемблирование и разбираться на уровне команд. Это все конечно интересно, но тема не моя. Поэтому, думаю, это исследование можно закончить. Если вы конечно не придумаете новую оптимизацию
1
|
||||||||
| 13.12.2018, 00:01 | |
|
Помогаю со студенческими работами здесь
10
Проверить, входит ли в запись числа ровно два раза цифра 5 Определение степени числа 3 в разложении на простые множители
Получить два множества: все простые числа из этого диапазона и все остальные Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|