#coding: utf-8 ''' mbinary ####################################################################### # File : euler.py # Author: mbinary # Mail: zhuheqin1@gmail.com # Blog: https://mbinary.xyz # Github: https://github.com/mbinary # Created Time: 2018-12-16 10:53 # Description: euler function: phi(n) perfect num: \sigma (n) = 2n, \sigma (n) is the sum of all factors of n eg \sigma (9) = 3+3+9 = 15 ####################################################################### ''' from factor import factor from collections import Counter from functools import reduce from operator import mul def phi(n): st = set(factor(n)) return round(reduce(mul,(1-1/p for p in st),n)) def sigma(n): ct = Counter(factor(n)) return reduce(mul,(round((p**(ct[p]+1)-1)/(p-1)) for p in ct),1) if __name__=='__main__': while 1: n = int(input('n: ')) print('phi(n):',phi(n)) print('sigma(n):',sigma(n))