python - 找到一个四位数的数字,其平方是 8 位,最后 4 位是原始数字

标签 python math integer-arithmetic

<分区>

来自 my answer here 的评论,问题被问到(释义):

编写一个 Python 程序来求一个 4 位整数,当它与它自身相乘时,你会得到一个 8 位整数,它的最后 4 位等于原始数。

我会发布我的答案,但我对更优雅的解决方案 简洁但易于阅读的解决方案感兴趣! (Python 新手能看懂吗?)

最佳答案

这是一个没有任何模块的1-liner解决方案:

>>> next((x for x in range(1000, 10000) if str(x*x)[-4:] == str(x)), None)
9376

如果您考虑从 10003162 的数字,它们的平方会为您提供一个 7 数字。因此,从 3163 迭代会更优化,因为正方形应该是 8 数字。感谢@adrin 提出了这么好的观点。

>>> next((x for x in range(3163, 10000) if str(x*x)[-4:] == str(x)), None)
9376

关于python - 找到一个四位数的数字,其平方是 8 位,最后 4 位是原始数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49673030/

相关文章:

python - 用于查询哪个元素首先出现的 Python 列表的语法糖

python - Canvas 上的 Matplotlib RegularPolygon 集合位置

java - 将一个数除以 5,得到重量比并用它来分割另一个数

不同 cmath log() 和 exp() 实现中的 c 语言对称性?

c - 8位二进制0减1

python - 如果在 1/100 秒内请求相同的 Flask api,sqlalchemy 在插入后不会更新

python - 如何使用 excelwriter 将标题中的文本换行?

java - 如何在Java中找到整数中2的指数?

integer - 卡尔曼滤波器的溢出感知实现

Java算术除法