gpt4 book ai didi

python - 有效解决 Python 中的字母/数字问题

转载 作者:太空狗 更新时间:2023-10-29 20:52:52 25 4
gpt4 key购买 nike

如果a = 15并且152表示为a2,而215表示为2a 然后必须找到一个数字 x 使得

8x = 8*x8

我尝试了这个简单的 Python 代码

>>> i = 0
>>> while(i<=100000000000000000):
... if(int("8"+str(i))==8*int(str(i)+"8")):
... break
... i = i+1
... print i

但要产生正确的结果需要花费大量时间。

如何优化代码?

最佳答案

这里需要一些数学知识:设 x 是一个 n 位数的自然数。那么8x = 8 * 10^n + x, x8 = 10*x + 8。所以要解的方程是8 * 10^n + x = 8 * (10*x + 8) = 80*x + 64 ,其中 xn 必须是自然数。紧接着 x = (8 * 10^n - 64)/79。现在我们只需要检查 8 * 10^n - 64 形式的数字中有哪些可以被 79 整除,这是非常快的:

>>> n = 0
>>> while True:
... y = 8 * 10**n - 64
... if y % 79 == 0:
... x = y / 79
... break
... n += 1
...
>>> print x
101265822784
>>> print int("8"+str(x))==8*int(str(x)+"8")
True

关于python - 有效解决 Python 中的字母/数字问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4829950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com