python - 我想打印 1 到 20 之间的所有完美数字
问题描述
n=1
Sum=0
while n<=20:
for i in range(1,n+1):
if(n%i==0):
Sum+=i
if(Sum==n):
print(Sum)
n+=1
我需要打印 1 到 20 之间的所有完美数字。
解决方案
完美数在这里定义
为此,我将在函数中隔离完美的数字检查,如下所示:
def is_perfect(n):
s = 0
for i in range(1,n//2+1):
if(n%i==0):
s += i
return n == s
n=20
print([x for x in range(1, n+1) if is_perfect(x)])
推荐阅读
- flutter - 如何在颤振应用程序中更改状态栏的颜色
- sql - 如何重新排列和更新 postgresql 中的数字序列?
- excel - 如何在引号内的公式中写&?
- mongodb - 在同一个应用程序中使用 JpaRepository 和 MongoRepository
- prometheus - thanos 查询器是否有一个指标端点,它显示来自商店的所有指标,而不仅仅是 thanos 本身?
- linux - 为什么 return 语句在 shell 函数中的行为不符合预期?
- elasticsearch - Logstash 聚合过滤器插件在 SqlJDBC 驱动程序中无法正常工作
- c# - NPOI 如何更新工作簿中的单元格格式
- java - Webview 不支持网页(不能使用 Chrome)
- git - 将多个存储库上传到 GitLab