用Python找出给定范围内特殊数字的数量的程序

假设我们给定了一个整数范围,并被要求找出该范围内的特殊数字。特殊数是一个正整数,其十进制表示中只有 1 位数字。如果该数字可被其十进制表示中的位数整除并且商值本身是一个特殊数字,则其十进制表示中具有超过 1 位数字的数字也可能是特殊数字。我们返回给定范围(left_limit,right_limit)中特殊数字的计数。

所以,如果输入像 left_limit = 5, right_limit = 30,那么输出将是 13。

此范围内的特殊数字是:5、6、7、8、9、10、12、14、16、18、20、24 和 28。

示例

让我们看看以下实现以获得更好的理解 -

def strange(left_limit, right_limit):
   if right_limit < 10:
      return right_limit - left_limit + 1
len_right = len(str(right_limit))
number_list = [0,1,2,3,4,5,6,7,8,9,10,12,14,16,18]
for j in range(2, len_right + 1):
for k in number_list:
temp1 = k*j
if len(str(temp1)) == j:
number_list.append(temp1)
elif len(str(temp1)) > j:
break
if number_list[len(number_list)-1] >= right_limit:
break
number_list = list(set(number_list))
count = 0
for temp2 in number_list:
if temp2 >= left_limit and temp2 <= right_limit:
count = count + 1
return count
print(strange(5, 30))

输入

5, 30
输出结果
13

猜你喜欢