Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Сумма всех множителей числа n
- """
- # Используем алгоритм, раскладывающий число n на простые множители
- def factors(number):
- arrayOfSimpleNumbers = []
- currentNumber = 2
- while currentNumber**2 <= number:
- while number % currentNumber == 0:
- arrayOfSimpleNumbers.append(currentNumber)
- number //= currentNumber
- currentNumber += 1
- if number > 1:
- arrayOfSimpleNumbers.append(number)
- return arrayOfSimpleNumbers
- def sumOfPrimeFactors(number):
- arrayOfPrimeFactors = factors(number)
- arrayOfUsedNumber = []
- result = 1
- for i in arrayOfPrimeFactors:
- for j in arrayOfUsedNumber:
- if j == i: break
- else:
- result *= (i**(arrayOfPrimeFactors.count(i) + 1) - 1) // (i - 1)
- arrayOfUsedNumber.append(i)
- return result
- print(sumOfPrimeFactors(12)) # вводим любой положительное целое число
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement