|
2 / 2 / 0
Регистрация: 03.05.2020
Сообщений: 202
|
|
Найти количество делителей двух чисел09.07.2021, 08:08. Показов 11778. Ответов 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
|
||||||
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,345
|
||
| 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
|
||
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,345
|
||
| 07.07.2024, 18:09 | ||
|
0
|
||
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,345
|
|
| 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
|
|
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,345
|
|
| 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
|
||||||
|
Вездепух
13215 / 6847 / 1826
Регистрация: 18.10.2014
Сообщений: 17,345
|
|
| 26.08.2024, 22:35 | |
|
Правильное решение уже приводилось в аналогичной теме: Найти количество делителей двух чисел
0
|
|
|
Нарушитель
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,625
|
|||
| 26.08.2024, 23:18 | |||
std::gcd из <numeric>тем более, у тебя один из самых медленных алгоритмов для вычисления gcd на основе вычитаний. Можно же использовать алгоритм на основе %. Хотя, в код не вникал и, возможно, там всё нужно менять...
0
|
|||
| 26.08.2024, 23:18 | |
|
Для каждого числа найти количество его делителей и определить общее количество простых чисел в последовательности Найти количество делителей каждого из целых чисел от a до b на с++
Вводится последовательность из N целых чисел. Найти количество двух- и количество трех разрядных чисел в последовательн Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|