编写程序,按从小到大的顺序寻找同时符合条件 1 和 2 的所有 3 位数,条件为: 1、该数为完全平方数; 2、该数至少有 2 位数字相同。 例如:100 同时满足上面两个条件。
时间: 2024-12-16 12:30:57 浏览: 4
矩阵与数值分析大作业
编写程序来找出所有满足条件的三位完全平方数,其中至少有两个数字相同,我们可以采用以下步骤:
1. 定义一个函数,用于判断一个数是否为完全平方数。这通常通过计算其平方根并检查整数部分是否等于原数的一半实现。
```python
import math
def is_perfect_square(n):
root = int(math.sqrt(n))
return root * root == n
```
2. 创建一个循环,从最小的三位数(100)开始,逐个检查每个数,直到最大的三位数(999)。对于每个数,我们先将其转换为字符串以便于操作,然后遍历每一位。
```python
result = []
for num in range(100, 1000): # 遍历三位数范围
str_num = str(num)
if len(set(str_num)) <= 2: # 检查是否有两位或全部相同的数字
if is_perfect_square(int(str_num[0] + str_num[1] * str_num[2])): # 判断是否为完全平方
result.append(num)
```
3. 最后,打印出所有的结果。
```python
print("满足条件的三位数有:", result)
```
阅读全文