например, наименьшее 2-значное число равно 34 = 3 ^ 2 + 4 ^ 2 = 25, что является идеальным квадратом, поэтому на выходе должно быть 34 наименьших 3-значных числа: 122 = 1 ^ 2 + 2 ^ 2 + 2 ^ 2= 9, что является идеальным квадратом, на выходе должно быть 3. Я хочу оптимизировать код, чтобы он мог работать в линейном или логин
import math
def sum_digits3(n):
r = 0
while n:
if (n%10)==0:
return 0
break
r, n = r + (n % 10)*(n%10), n // 10
return r
def isPerfectSquare(x):
# Find floating point value of
# square root of x.
sr = math.sqrt(x)
# If square root is an integer
return ((sr - math.floor(sr)) == 0)
T =int(input())
for t in range(T):
N=int(input())
rstart=10**(N-1)
rend=10**(N)-1
flag=0
for j in range(rstart,rend+1):
sum1=sum_digits3(j)
if sum1!=0 and isPerfectSquare(sum1):
print(j)
flag=1
break
if flag==0:
print(-1)