趴在树上的猫


私信TA

用户名:Hoare

访问量:4086

签 名:

等  级
排  名 2116
经  验 2444
参赛次数 0
文章发表 27
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

从2到该数开方取大,挨个除,能整除则除数和商都是因数,加到总和上,最后判断总和与这个数是否相同,相同就是完数


注意事项:
坑:1不是完数,踩这个坑只能对91%


参考代码:

import math
x=int(input())
sum=1              #每个数都包含因数1,且不包含自身
for i in range(2,int(math.sqrt(x)+1)):        #除数范围从2到开方取大
   if x%i==0:                       #如果能整除,则为x的因数,这样可以同时得到两个因数
       sum+=i
       sum+=x//i
if sum==x and x!=1:                 #需要注意1不是完数
   print("yes")
else:
   print("no")

 

0.0分

1 人评分

  评论区

  • «
  • »