def f(n):
"""求各位数字的平方和
列如:f(13) = 1**2 + 3**2 = 10"""
# 将整数转换为列表
int_list = list(map(int, str(n)))
sum = 0
# 求列表中各项的平方和
for i in range(0, len(int_list)):
sum += int_list[i]**2
return sum
def shijinzhi(*_list):
# 输入的三个整数k,a,b
k = _list[0]
a = _list[1]
b = _list[2]
# 满足条件的次数i
i = 0
# 判断在a和b中的整数是否满足n == k * f(n),满足次数+1,不满足就继续循环
for n in range(a, b + 1):
if n == k * f(n):
i += 1
else:
continue
return i
print("满足条件的次数为:" + shijinzhi(51, 5000, 10000))
定义f(n)为其各位数字的平方和,给出三个正整数k,a, b,你需要计算有多少个正整数n满足a小于等于n小于等于b, 且k*f(n)=n
猜你喜欢
转载自blog.csdn.net/weixin_45116412/article/details/104920145
今日推荐
周排行