同构数意味着该数出现在其平方数的右侧。
例如:n = 25, n**2 = 25*25 = 625
给定的数字 25 出现在结果的右侧。
因此,25 是一个同构数。
算法:
将要检测的数字存储在变量 num 中。 使用 str() 函数将给定数字转换为字符串,并使用 len() 函数查找存储在变量 lenth 中的给定数字的长度。 计算给定数字的平方并将其存储在变量 sqr num 中。 使用模运算和 pow() 函数获取 sqr num 的最后 n 位数字并将其存储在变量 n 中。 使用 if 条件语句检查 n 是否等于给定的输入数字 num。 如果该语句为 true,则给定数字的输出为同构数。 如果为 false,则给定数字的输出不是同构数字。
num = 25
lenth = len(str(num))
sqr_num = num**2
n = sqr_num % pow(10, lenth)
if n == num:
print(num, "是一个同构数。 ")
else:print(num, "不是同构数。 ")
算法:自定义函数是 automorphic(n),参数 n 是要检测的数字。 计算 n 的平方,存储在变量 sqr num 中。 使用 while 循环,条件是要检测的数字为 n > 0。 取 n 和 sqr num 的余数 10 分别确定余数结果是否相等。 如果不等于,则函数返回 false。 将 n 和 sqr num 除以 10 并删除最后一位数字。 继续 while 循环。 经过几次可整除后,要检测的数字 n 为 0,while 循环结束。 该函数返回 true。 使用 if 语句判断函数返回的结果。 如果该语句为 true,则给定数字的输出为同构数。 如果为 false,则给定数字的输出不是同构数字。
def is_automorphic(n):
sqr_num = n * n
while n:
square_remainder = sqr_num%10
number_remainder = n%10
if square_remainder != number_remainder:
return false
n //= 10
sqr_num //= 10
return true
n = 25
if is_automorphic(n):
print(n, "是一个同构数。 ")
else:print(n, "不是同构数。 ")
算法:使用字符串切片与三元运算相结合,使用单行**检测同构数。
n = 25
# n^2 = 625 '625'[-2::]= 25
print("yes" if int(str(n**2)[-len(str(n)):== n else "no")
算法:使用 endswith() 方法检查字符串是否以指定值结尾。
num = 25
a = str(num)
num1 = num **2
b = str(num1)
if b.endswith(a):
print(num, "是一个同构数。 ")
else:print(num, "不是同构数。 ")
创建文章并不容易,如果您喜欢这篇文章,请关注、点赞并与您的朋友分享。 如果您有意见和建议,请在评论中给我们反馈。