5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
||||||
1 | ||||||
Зная простые делители числа и их количество, найти все делители числа19.04.2018, 20:52. Показов 6373. Ответов 23
Метки нет Все метки)
(
Добрый вечер.
Есть задача: зная простые делители числа и их количество, найти все делители числа. У меня есть словарь, в котором хранятся простые делители и их количество. Для числа 20, например: {2: 2, 5: 1}. Имея этот словарь, нужно получить список с делителями; т.е. для числа 20: [2, 4, 5, 10, 20].
P.S. Была у меня одна догадка, но что-то я в ней сомневаюсь. Получается, нужно брать комбинации всех ключей словаря?
0
|
|
19.04.2018, 20:52 | |
Ответы с готовыми решениями:
23
Все простые делители числа Получить все простые делители числа
Получить все делители числа q взаимно простые с p |
37 / 36 / 16
Регистрация: 11.03.2018
Сообщений: 95
|
|
19.04.2018, 21:05 | 2 |
Ваша догадка сработает однозначно
1
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
19.04.2018, 21:06 [ТС] | 3 |
FilArt97, к сожалению, я не знаю, как её реализовать. Вы не могли бы немного намекнуть на реализацию?
0
|
37 / 36 / 16
Регистрация: 11.03.2018
Сообщений: 95
|
|
19.04.2018, 21:11 | 4 |
Решение в лоб вас устроит?
0
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
19.04.2018, 21:14 [ТС] | 5 |
FilArt97, да, если можно.
0
|
881 / 659 / 253
Регистрация: 10.12.2016
Сообщений: 1,610
|
||||||
19.04.2018, 21:37 | 6 | |||||
![]() Решение
например через itertools
1
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
19.04.2018, 21:41 [ТС] | 7 |
vic5710, спасибо большое!
0
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
19.04.2018, 21:44 [ТС] | 9 |
vic5710, очень благодарна.
0
|
37 / 36 / 16
Регистрация: 11.03.2018
Сообщений: 95
|
||||||
19.04.2018, 22:09 | 10 | |||||
![]() Решение
Да уж, что-то я слегка не тем путем пошел Добавлено через 38 секунд Хотя стоп, я просто привязался к словарю, поэтому конечно да
1
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
19.04.2018, 22:11 [ТС] | 11 |
FilArt97, очень Вам признательна за код, буду разбираться.
0
|
37 / 36 / 16
Регистрация: 11.03.2018
Сообщений: 95
|
||||||
19.04.2018, 22:37 | 12 | |||||
Лучше используйте первый код, который вам уже предложили, там получше
Добавлено через 25 минут Для 30-ти не работат:
0
|
Фрилансер
3704 / 2076 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||||||
21.04.2018, 17:17 | 13 | |||||
![]() Решение
1
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
21.04.2018, 18:07 [ТС] | 14 |
Black Fregat, большое спасибо!
Добавлено через 3 минуты Протестировала все способы, все коды - все предложенные решения выдают Time Limit, ограничение по времени - 0.1 секунда. Как можно их усовершенствовать? P.S. Если что, то нахождение простых делителей у меня уложилось в 0.1 секунды.
0
|
Фрилансер
3704 / 2076 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
21.04.2018, 21:12 | 15 |
А можно более точную формулировку задачи? Особенно диапазон чисел
0
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
21.04.2018, 21:21 [ТС] | 16 |
Black Fregat, напишите программу, которая говорит, является ли данное число совершенным. Попробуйте генерировать делители числа из его разложения на простые множители.
Добавлено через 29 секунд Диапазон от 1 до 2 в 30 степени.
0
|
Фрилансер
3704 / 2076 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||||||
21.04.2018, 23:39 | 17 | |||||
Так это же совсем другое дело!
Не надо генерировать список делителей, надо сразу считать сумму
1
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
21.04.2018, 23:46 [ТС] | 18 |
Black Fregat, у Вас s - это сумма делителей?
0
|
Фрилансер
3704 / 2076 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
21.04.2018, 23:47 | 19 |
А можно сделать грязный хак - явно забить все соверщенные числа в диапазоне, их совсем немного
Добавлено через 1 минуту Да, только всех делителей. Для суммы собственных делителей нужно вычесть само число.
0
|
5 / 5 / 10
Регистрация: 13.06.2017
Сообщений: 64
|
|
21.04.2018, 23:50 [ТС] | 20 |
Black Fregat, но разве сумма делителей числа 360 равна 1170?
Добавлено через 1 минуту Да, так можно сделать, но хотелось бы решить без таких хаков)
0
|
21.04.2018, 23:50 | |
21.04.2018, 23:50 | |
Помогаю со студенческими работами здесь
20
Файлы. Найти наименьший и наибольший общие делители, также определить все простые числа и их количество
Найти все простые делители числа
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |