擅长:python、mysql、java
<p>您可以用<code>len(n)-1</code>替换<code>int(math.log10(n))</code>。完全保持在int范围内,Python应该支持“任意大”的数字</p>
<pre><code>import math
t = int(input())
for _ in range(t):
n=int(input())
if n<10:
print(n)
else:
flag=True
while flag:
for i in range(len(str(n))): # < here
digit=n%(10**(i+1))//(10**i)
if digit==0:
continue
if not (n%digit==0):
break
if i==len(str(n))-1: # < and here
print(n)
flag=False
n+=1
</code></pre>
<p>除此之外,我没有检查您的算法:)</p>