zoukankan      html  css  js  c++  java
  • python基础练习题(题目 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数)

    day12

    ---------------------------------------------------------------

    实例019:完数

    题目 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

    分析:如果能被a整除,那么a是因子,放入一个列表然后再求和,与原被除数相等,就是完数

    1 for i in range(1,int(a)):
    2     list = []
    3     if i >1:
    4         for j in range(1,i):
    5             if i%j == 0:
    6                 list.append(j)
    7     if sum(list) ==i:
    8         print(f"{i}是完数")

    看看答案:

     1 def factor(num):
     2     target=int(num)
     3     res=set()
     4     for i in range(1,num):
     5         if num%i==0:
     6             res.add(i)
     7             res.add(num/i)
     8     return res
     9 
    10 for i in range(2,1001):
    11     if i==sum(factor(i))-i:
    12         print(i)

    答案定义了一个返回某个数所有的因子的函数,再在函数外判断是否为完数,还是很好理解。我这个也可以不用列表再sum,直接定义一个求和的变量即可

  • 相关阅读:
    结构型设计模式(上)
    创建型设计模式(下)
    创建型设计模式(上)
    HTTP 简述
    MVC、MVP与MVVM架构模式
    PHP 部分语法(二)
    PHP 部分语法(一)
    TypeScript 学习笔记(四)
    WORD 和Uint16的区别
    extern的用法
  • 原文地址:https://www.cnblogs.com/qgc1995/p/14873371.html
Copyright © 2011-2022 走看看