循环控制结构穷举 同构数

说明

同构数是会出现在它的平方的右边的数。例如,5就是1个同构数。5的平方是25,25最右边的这个数是5自己。25也是一个同构数,比如25的平方是625,而625右边的数是25.

请编程输出1000以内正整数中所有的同构数。每行一个答案。

输出样例

很明显的,1000以内正整数中的同构数不止这两个。

题解 

def is_automorphic(num):
    # 计算平方
    square = num ** 2
    # 将数字转换为字符串,截取平方的最后几位,检查是否等于自身
    return str(square).endswith(str(num))


# 遍历1到1000之间的所有数,判断是否为同构数
for i in range(1, 1001):
    if is_automorphic(i):
        print(i)

解题思路:

  1. 遍历范围: 我们需要遍历1到1000之间的所有正整数。
  2. 判断条件: 对于每个数n,计算它的平方n^2,然后检查平方的最后几位是否等于n本身。要做到这一点,可以通过将n^2转换为字符串并截取最后与n位数相同的位数,判断它们是否相等。
  3. 输出结果: 满足条件的数即为同构数,每行输出一个结果。

解释:

  1. is_automorphic(num):该函数判断一个数是否为同构数。通过将数num的平方转换为字符串,并检查平方数的最后几位是否等于num本身。
  2. 主程序中,循环遍历1到1000的每个数字,调用is_automorphic(i)来判断每个数是否为同构数,如果是,则输出该数。

猜你喜欢

转载自blog.csdn.net/qq_73454087/article/details/143165911