-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path719.py
44 lines (37 loc) · 900 Bytes
/
719.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from typing import List
global_sum = 0
flag = False
def rec(ssq, arr: List, start_ind):
global flag
if flag:
return
klen = len(ssq)
if start_ind == klen:
sumk = 0
ind_sum = 0
num_arr = []
for i in arr:
n = ssq[ind_sum:ind_sum + i]
num_arr.append(n)
sumk += int(n)
ind_sum += i
if sumk ** 2 == int(ssq):
global global_sum
global_sum += sumk ** 2
flag = True
print(sumk, arr, num_arr, ssq)
return
for i in range(start_ind, klen):
c_arr = arr.copy()
diff = i - start_ind + 1
c_arr.append(diff)
rec(ssq, c_arr, diff + start_ind)
for i in range(2, 1000001):
sq = i ** 2
start_ind = 0
end_ind = 0
arr = []
ssq = str(sq)
flag = False
rec(ssq, [], 0)
print(global_sum)