在 Python 中检查数字是否为自同构数

小夏 教育 更新 2024-01-31

同构数意味着该数出现在其平方数的右侧。

例如: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, "不是同构数。 ")

创建文章并不容易,如果您喜欢这篇文章,请关注、点赞并与您的朋友分享。 如果您有意见和建议,请在评论中给我们反馈。

相似文章

    在 Python 中检查一个数字是否是 Sunny 数字

    给定一个数字 n,如果一个数字的下一个数字 n 是另一个数字的正方形数,那么该数字 n 被称为一个阳光数字。算法 将要检测的数字存储在变量 num 中。为给定数字找到下一个数字 num 并将其存储在变量 num 中。使用数学sqrt 函数计算 num 的平方根并将其存储在变量 sqrt num 中。...

    如何键入数字

    有几种方法可以在键盘上键入数字,以下是一些常见的方法 在标准桌面键盘上,数字键位于主键盘区域的顶行,可以直接按下相应的数字键进行键入。如果要输入与数字对应的符号,可以先按住shift键,然后按相应的数字键。如果您使用的是中文输入法,您可以直接在键盘上找到数字键进行输入。以下是在键盘上键入数字的几种常...

    成为数字人需要多少钱?

    把自己克隆成一个数字人,成就永生 这已经不是预言了。相反,它已成为日常生活中非常流行的应用程序。如数字人直播 数字人导购 数字人客服 数字人员工 数字人警等。所以今天我们要谈谈成为数字人要花多少钱 很多网友可能会认为,做一个数字人需要几万元。这个 已经是过去的时代了,数字人服务平台现在在中国已经非常...

    一位70后大学教师,赢得数字医疗IPO

    直通IPO,温韩文静 近日,健康国际 以下简称 健康 在香港联交所递交招股书,申万宏源香港和清科资本为其联席保荐人。招股书显示,健康是一个数字化医疗健康服务平台,连接医疗卫生机构 医务人员和个人用户,构建线上线下渠道无缝融合的综合性医疗健康服务平台。十几年前,罗宁正和合伙人王明一起开启了健康的创业之...

    在伯恩茅斯的失利中,他是一个“哭泣的婴儿”

    曼联队长布鲁诺 费尔南德斯表示,在伯恩茅斯的失利中,他是一个 哭泣的婴儿 布鲁诺 费尔南德斯在周六曼联 输给伯恩茅斯的比赛中表现出色后,受到了专家克里斯 萨顿的抨击。前凯尔特人和切尔西前锋克里斯 萨顿指责布鲁诺 费尔南德斯在周六曼联 输给伯恩茅斯的最后阶段表现得像个 哭泣的孩子 费尔南德斯在比赛还剩...