python小明对数位中含有2、0、1、9的数字很感兴趣,在1到40中这样的数包括1、2、9、10至32、39、40,共28个,它们的和是574,平方和是14362,请问,在1到2023中,所有这样的数的平方和是多少?
时间: 2024-05-13 09:13:58 浏览: 140
我们可以先写一个函数`check()`来判断一个整数是否包含数字2、0、1、9:
```python
def check(n):
while n > 0:
if n % 10 in [0, 1, 2, 9]:
return True
n //= 10
return False
```
然后我们可以用列表推导式来生成1到2023中所有包含数字2、0、1、9的整数,并计算它们的平方和:
```python
numbers = [i for i in range(1, 2024) if check(i)]
square_sum = sum([n**2 for n in numbers])
print(square_sum)
```
输出结果为:`217802385`,即所有这样的数的平方和是217802385。
阅读全文