美文网首页
017. 一个数如果恰好等于它的因子之和,这个数成为“完数”、

017. 一个数如果恰好等于它的因子之和,这个数成为“完数”、

作者: 邵梦寒 | 来源:发表于2018-07-24 18:52 被阅读0次

    def pri_num(val): #求出该数字的所有素数
    for i in range(2,val+1):
    if i<=4:
    j=i
    else:
    j=i//2
    for k in range(2,j):
    if i%k==0:
    break
    else:
    num.append(i)
    def sol_factor(val,k): #求因数
    for i in k: #遍历素数
    if val%i==0:
    return i
    break
    else:
    return 1
    for input_num in range(2,1000):
    sum_num=1
    num=[] #该数字范围内的所有素数
    fac_num=[] #该数字的因数
    pri_num(input_num) #求出该数字的所有素数
    decom_num=input_num #要分解的数
    while True:
    res=sol_factor(decom_num,
    num)
    if res==decom_num: #遍历结束
    sum_num +=res
    fac_num.append(str(res))
    break
    else:
    sum_num +=res
    fac_num.append(str(res))
    decom_num= decom_num/res
    if sum_num==input_num:
    print(input_num,'=1+','+'.join(fac_num)) #分解后的表达式

    相关文章

      网友评论

          本文标题:017. 一个数如果恰好等于它的因子之和,这个数成为“完数”、

          本文链接:https://www.haomeiwen.com/subject/oemymftx.html