Программирование, Python, решите пожалуйста задачи без нейронки, срочно
Задача 1:
Написать функцию, которая создает словарь множителей (делителей) для диапазона чисел.
Ключом для каждого списка в словаре должно быть число. Список, связанный с каждым
ключом, должен содержать множители для числа. Если у числа нет множителей (только 1
и само число), то список для ключа должен быть ['None']. Функция принимает два
аргумента (n и m). Где n - начальное число, а m - конечное число.
Например, все множители от 2 (n) до 6 (m). {2: ['None'], 3: ['None'], 4: [2], 5: ['None'], 6: [2,
3]}
Задача 2:
Дан словарь вам необходимо поменять местами ключи и значения. Словарь будет
содержать только строки, не будет пустым.
Например, задан словарь: {'Ice': 'Cream', 'Age': '21', 'Light': 'Cream', 'Double': 'Cream'}
Вернуть:{'Cream': ['Ice', 'Double', 'Light'], '21': ['Age']}
Задача 3:
Напишите функцию, которая будет возвращать количество различных буквенных
символов и числовых цифр, не зависящих от регистра, которые встречаются во входной
строке более одного раза. Можно предположить, что входная строка содержит только
буквы алфавита (как прописные, так и строчные) и числовые цифры.
Например:
"abcde" -> 0 # ни один символ не повторяется более одного раза
'aabbcde' — 2 # 'a' и 'b'
"Indivisibilities" -> 2 # «i» встречается семь раз, а «s» встречается дважды.
'aA11' -> 2#'a' и '1'
Задача 1 (для натуральных n и m):
from math import isqrt
def f(n):
if n < 4: return ['None']
else:
m, A = isqrt(n), []
for l in range(2, m + 1):
if n % l == 0:
A.append(l)
A.append(n // l)
if m * m == n:
A.remove(m)
return sorted(A) if len(A) else ['None']
def g(n, m):
return {i: f(i) for i in range(n, m + 1)}
# Пример использования:
n, m = map(int, input('n m: ').split())
print(g(n, m))
Требуемая к написанию функция g вызывает вспомогательную функцию f, вычисляющую список делителей, - так всё проще получается чем валить все действия в одну единственную функцию
сам сам сам...
иначе лох.