a740: 质因数之和
print ('a740: 质因数之和')
def reduceNum(n):
ssum=0
print ('{} = '.format(n), end=" ")
if not isinstance(n, int) or n <= 0 :
print ('请输入一个正确的数字 !')
exit(0)
elif n in [1] :
print ('{}'.format(n))
while n not in [1] : # 循环保证递归
for index in range(2, n + 1) :
if n % index == 0:
n //= index # n 等于 n//index
if n == 1:
print (index )
ssum=ssum+index
else : # index 一定是素数
print ('{} *'.format(index), end=" ")
ssum=ssum+index
break
return (ssum)
b=int (input('輸入 正整數 n (EOF 為止) -->'))
a=reduceNum(b)
print('质因数',b,'之和=',a)
>>> %Run a740.py
a740: 质因数之和
輸入 正整數 n (EOF 為止) -->24
24 = 2 * 2 * 2 * 3
质因数 24 之和= 9
>>>
沒有留言:
張貼留言