/
rnekrasov
/
Python
Обзор
Документация
Войти
/
rnekrasov
/
Python
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
MobiusFunction.py
40 строк
813 B
slowy07
refactor: clean code
30 янв 2022, 04:33
30 янв 2022, 04:33
f0af0c4
Код
Авторство
О чём код?
def is_square_free(factors): """ This functions takes a list of prime factors as input. returns True if the factors are square free. """ for i in factors: if factors.count(i) > 1: return False return True def prime_factors(n): """ Returns prime factors of n as a list. """ i = 2 factors = [] while i * i <= n: if n % i: i += 1 else: n //= i factors.append(i) if n > 1: factors.append(n) return factors def mobius_function(n): """ Defines Mobius function """ factors = prime_factors(n) if is_square_free(factors): if len(factors) % 2 == 0: return 1 elif len(factors) % 2 != 0: return -1 else: return 0