解题思路:
注意事项:有人不懂为什么因子循环到一半就行,因为完数等于因子之和,两个因子都大于一半,加起来就大于原来的数了,是不可能的
参考代码:
n=int(input())
for x in range(6,n+1):
a=[]
b=0
if x%10==6 or x%10==8 and x%3==1:
for i in range(1,x//2+1):
if x%i==0:
b=b+i
a.append(i)
if b==x:
print(x,'its factors are',(' ').join(str(i)for i in a))
0.0分
5 人评分
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:436 |
人见人爱A+B (C语言代码)浏览:664 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1436 |
简单的a+b (C语言代码)浏览:878 |
Cylinder (C语言描述,蓝桥杯)浏览:1279 |
sizeof的大作用 (C语言代码)浏览:1593 |
sizeof的大作用 (C语言代码)浏览:1138 |
格式化数据输出 (C语言代码)浏览:882 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:532 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:592 |
debuff 2022-02-28 22:59:52 |
根据百度百科全部完数的结尾不是6就是8,所以前面两个就是这个原因
debuff 2022-02-28 23:02:14 |
刚刚试了,把后面的%3去掉答案也是正确的
蓝桥杯不拿省一不改名 2022-05-03 18:49:21 |
欧克,谢谢