1.题目描述
猴子第一天摘下若干个桃子,当天吃了一半,后面又多吃一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。后面每天猴子都吃了前一天剩下的一半零一个。到第十天想再吃时,只剩下一个桃子。求第一天共摘了多少桃子。
输入格式
无。
输出格式
一个整数。
x=1
for day in range(1,10):
x = (x+1)*2
print(x)
2.题目描述
小明正在进行期末数学考试,现在他遇到了这样一个题:如果一个大于 1
的正整数的所有因子之和等于它的本身,则称这个数是完数,比如 6
,28
都是完数:6=1+2+3
;28=1+2+4+7+14
。请判断两个正整数之间完数的个数。小明想请聪明的你帮帮他。
输入输出格式
输入格式
输入包含两个正整数 n1
和 n2
,表示题目描述中的数据范围。
正整数之间以空格间隔。
输出格式
针对输入,请打印出 n1
和 n2
之间(包括边界)存在的完数个数。
题目分析:
- 数学题,如何判断一个数是否为完数,从1到该数之前,遍历取,然后判断该数是否可以将其整除,可以的话将这些除数求和,判断是否等于该数,等于的话则该数为完数,否则不是。
思路分析:
数学思路分析:
- 根据完数的定义可以得知:把一个数所有能整除他的因子加起来之和等于他本身即为完数。
代码思路分析:
- 用一个函数进行判断是否为完数,从1到该数之前,遍历取,然后判断该数是否可以将其整除,可以的话将这些除数求和。然后外面一个循环进行计数,每有一个完数则加1。
实现方法:
- 使用两个循环,一个用于判断是否为完数,另一个函数进行计数。
n1,n2=input().split()
Sum=0
for i in range(int(n1),int(n2)):
l=[]
for j in range(1,i):
if i%j==0:
l.append(j)
if sum(l)==i:
Sum=Sum+1
print(Sum)