|
2 / 2 / 0
Регистрация: 03.05.2020
Сообщений: 202
|
|
Найти количество делителей двух чисел09.07.2021, 08:08. Показов 11865. Ответов 30
Метки нет (Все метки)
Дано натуральное число n. Подсчитайте количество таких пар чисел (a;b), что:
a и b — делители n; a<b; a и b — взаимно простые; ab≤n. Входные данные Вводится натуральное число n≤108. Выходные данные Выведите количество таких пар. Примеры Ввод 10 Вывод 4
0
|
|
| 09.07.2021, 08:08 | |
|
Ответы с готовыми решениями:
30
С клавиатуры вводится N чисел. Найти количество чисел, у которых количество делителей четное число Найти количество чисел имеющих четное количество делителей Найти количество чисел имеющих четное количество делителей |
|
6 / 5 / 1
Регистрация: 19.07.2021
Сообщений: 1
|
||||||
| 19.07.2021, 11:09 | ||||||
Сообщение было отмечено dmitrii2000 как решение
Решение
Здравствуйте, Catstail, ваше решение почти правильное, я его лишь доработал под данное условие.
Во-первых, ab≤n, а не ab<n. Во-вторых, условие задачи не очень правильное по моему мнению. 1 считается за простое число, хотя это не так. Таким образом получаем 4 пары чисел: (1, 10);(1, 5);(1, 5);(2, 5). Учитывая эти факторы, выкладываю доработанное решение:
5
|
||||||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 19.07.2021, 12:47 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 10.02.2022
Сообщений: 2
|
||||||
| 06.07.2024, 22:36 | ||||||
|
1. разложим число n на простые множители.
получится разложение вида: 2. Пользуясь комбинаторикой я вывел формулу для ответа: т.е. остаётся только перебрать все простые делители и посчитать ответ. мой код:
1
|
||||||
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,405
|
||
| 07.07.2024, 06:34 | ||
|
Более того, по вашей формуле получается, что число 20 (= 22*51) имеет 7 делителей (=((2*2+1)(2*1+1)-1)/2). Но правильный ответ - 6 (=(2+1)(1+1)).
0
|
||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 07.07.2024, 10:01 | ||
|
1
|
||
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,405
|
||
| 07.07.2024, 18:09 | ||
|
0
|
||
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,405
|
|
| 24.08.2024, 01:23 | |
|
Для начала уберем требование a<b из условия задачи. Пусть нас интересует P(x) - количество таких пар (a, b) для числа x, в котором (a, b) и (b, a) считаются разными парами. Обратите внимание, что теперь пара (1, 1) тоже учитывается и это единственная "симметричная" пара.
1. Взглянем на искомую функцию P(x). Пусть y и z - взаимно просты (эквивалентно: простые факторизации y и z не содержат одинаковых факторов). Пусть взаимно простая пара (a, b) входит в P(y), а взаимно простая пара (c, d) входит в P(z). Очевидно, что ac|yz (делит) и bd|yz. Ясно также, что числа ac и bd - взаимно просты. Действительно, если, скажем, c и b имеют общий простой фактор, то это противоречит взаимной простоте y и z. То есть пара (ac, bd) будет входить в P(yz). В другую сторону, пусть пара (e, f) входит в P(yz). Факторизация e будет содержать только простые факторы чисел y и z. Обозначим произведение первых через a, а вторых - через c, т.е. e=ac. Аналогичным образом разложим f в произведение f=bd. Мы получим пары (a, b) и (c, d). Понятно, что и a, и b делит y. При этом общих простых факторов у a и b нет (в противном случае e и f не были бы взаимно простыми), что значит, что a и b - взаимно простые. То есть (a, b) входит в P(y). Аналогичным образом: (c, d) входит в P(z). Несложно видеть, что таким образом мы получили взаимно однозначное соответствие между каждой комбинацией пар (a, b) из P(y) и (с, d) из P(z) и парой (ac, bd) из P(yz). Из этого следует мультипликативность функции P(x), то есть для взаимно простых y и z выполняется P(yz) = P(y)P(z) 2. Пусть x=pn, где p - простое число. Чему равно P(x)? Очевидно, что это будет пара (1, 1) и всевозможные пары вида (1, pk) и (pk, 1) для k=1..n. Общее количество таких пар равно 2n+1. 3. Так как функция P(x) мультипликативна, для любого числа x, факторизация которого имеет вид pkqlrm..., функция P(x) будет равна (2k+1)(2l+1)(2m+1)... 4. А теперь вернем требование a<b в условие задачи. Тут же из общего набора допустимых пар исчезнет пара (1, 1), а из остального набора допустимых пар исчезнут пары-нарушители, которых будет ровно половина. Это и даст нам искомую формулу: для числа x=pkqlrm... ответ задачи равен ((2k+1)(2l+1)(2m+1)... - 1)/2 P.S. На шаге 3 видно, что P(x) равна количеству делителей x2.
1
|
|
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,405
|
|
| 24.08.2024, 19:59 | |
|
P.P.S. Интересно было бы найти какой-то более-менее несложный способ взаимно однозначного отображения между такими парами для x и делителями x2. Это привело бы к более "конструктивному" (и потому более наглядному) выводу формулы из пункта 3. Навскидку у меня не получилось найти такое отображение.
0
|
|
|
0 / 0 / 0
Регистрация: 26.08.2024
Сообщений: 2
|
||||||
| 26.08.2024, 22:00 | ||||||
0
|
||||||
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,405
|
|
| 26.08.2024, 22:35 | |
|
Правильное решение уже приводилось в аналогичной теме: Найти количество делителей двух чисел
0
|
|
|
Нарушитель
6693 / 3083 / 1064
Регистрация: 01.06.2021
Сообщений: 11,905
|
|||
| 26.08.2024, 23:18 | |||
std::gcd из <numeric>тем более, у тебя один из самых медленных алгоритмов для вычисления gcd на основе вычитаний. Можно же использовать алгоритм на основе %. Хотя, в код не вникал и, возможно, там всё нужно менять...
0
|
|||
| 26.08.2024, 23:18 | |
|
Для каждого числа найти количество его делителей и определить общее количество простых чисел в последовательности Найти количество делителей каждого из целых чисел от a до b на с++
Вводится последовательность из N целых чисел. Найти количество двух- и количество трех разрядных чисел в последовательн Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|