对于一个十进制的正整数, 定义f(n)为其各位数字的平方和,如:
f(13) = 1**2 + 3**2 = 10
下面给出三个正整数k,a, b,要求 k>=1, a,与b均小于10**18, 且a小于等于b。你需要计算有多少个正整数n满足a<=n<=b,
且k*f(n)=n
程序运行范例:
输入k、a、b: 51 5000 10000
运行结果:3
对于一个十进制的正整数, 定义f(n)为其各位数字的平方和,如:
f(13) = 1**2 + 3**2 = 10
下面给出三个正整数k,a, b,要求 k>=1, a,与b均小于10**18, 且a小于等于b。你需要计算有多少个正整数n满足a<=n<=b,
且k*f(n)=n
程序运行范例:
输入k、a、b: 51 5000 10000
运行结果:3
def f(n):
s=0
while n!=0:
s+=(n%10)**2
n//=10
return s
cnt=0
k,a,b=map(int,input().split())
for i in range(a,b+1):
if k*f(i)==i:
cnt+=1
print(cnt)