Короче, у меня есть задача на CodeWars-е нужно написать функцию, которая проверяет можно ли собрать это число из других более мелких в кубе. У меня получилось написать переборный алгоритм, но совсем огромные числа, она очень долго перебирает. Поэтому прошу у вас помощи с этим, можно ли как то ускорить проверку.
Далее будет задача, на английском:
Your task is to construct a building which will be a pile of n cubes. The cube at the bottom will have a volume of n^3, the cube above will have volume of (n-1)^3 and so on until the top which will have a volume of 1^3.
You are given the total volume m of the building. Being given m can you find the number n of cubes you will have to build?
The parameter of the function findNb (find_nb, find-nb, findNb, ...) will be an integer m and you have to return the integer n such as n^3 + (n-1)^3 + ... + 1^3 = m if such a n exists or -1 if there is no such n.
def find_nb(m):
summa = [n**3 for n in range(1,100_000)]
for i in range(len(summa)):
if sum(summa[:i])==m:return i
return -1