Python
Как среди чисел, данных в блокноте, найти, те у которых определенное количество делителей(в Python)
например: даны числа и среди них нужно найти те у которых 12 делителей
Должен сказать, что оба приведённых выше алгоритма являются хорошей иллюстрацией поговорки: "не умеешь - не берись".
def divcount(n):
factors = {1}
p, inc = 2, 1
while p * p 1:
factors.update([f * n for f in factors])
return len(factors)
dc = int(input())
ns = (int(s) for s in input().split())
print(*(n for n in ns if divcount(n) == dc))
Ну, 12 делителей для Питончика скорее всего слишком наглый запрос, долго будет размышлять над этим без подключения какой-нибудь библиотеки.
Если диапазон и количество делителей поменьше, например 100 и 3 (а не весьма спорные 12), то как-то так
Если диапазон и количество делителей поменьше, например 100 и 3 (а не весьма спорные 12), то как-то так
def f(x):
return [x / i for i in range(1, x - 1) if x / i == int(x / i)]
n = int(input('n'))
m = [f(i) for i in range(1, n + 1)]
print(m)
print(*[i + 1 for i in range(len(m)) if len(m[i]) == 3])
Получим 6 8 10 14 15 21 22 26 27 33 34 35 38 39 46 51 55 57 58 62 65 69 74 77 82 85 86 87 91 93 94 95
Александр Давыдов
Числа 60 и 72 имеют ровно 12 делителей.
Павел Шикелюк
Есть алгоритм поиска простых делителей и комбинирования их, он работает намного быстрее. Хотя, у автора "в блокноте" вряд ли стозначные числа, на которых разница была бы заметной...
n = int(input('n: '))
num_divisors = 12 # заданное количество делителей
# создаем список чисел от 1 до n
numbers = list(range(1, n+1))
# ищем числа с num_divisors делителями
result = [num for num in numbers if sum(num % i == 0 for i in range(1, num+1)) == num_divisors]
# выводим результат
print(f"Числа с {num_divisors} делителями: {result}")
Похожие вопросы
- Как с помощью программы вычислить количество делителей числа?
- Помогите написать программу которая посчитает количество строк в отзыве
- Дан список чисел. Нужно посчитать количество их "пар" (т.е. "1 1 1 1 1" = 10, "1 2 3 2 3" = 2 и т.д.) (Python)
- Питон. Как найти все делители числа?
- Можете помочь! Нужен код для Python, что бы он заменял определенный текст в файле
- Помогите, пожалуйста с делителями python
- Python, пользователь вводит три числа. Найдите среднее арифметическое этих чисел.
- Задача по Python: Найти сумму чисел и при вводе чисел...
- Найдите количество пятизначных чисел, взаимно простых с числом 92.
- Гладкие числа. Python