Список квадратов
Вы решили задачу. Теперь можно сравнить подходы.
Перебираем основания квадратов, пока квадрат не превышает N.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Умножение
Следующий квадрат получается из следующего натурального основания.
n = int(input())
i = 1
while i * i <= n:
print(i * i, end=" ")
i += 1
Время: O(√N). Память: O(1).
Другой способ: Сумма нечётных чисел
Разности соседних квадратов равны 3, 5, 7 и так далее.
n = int(input())
square, step = 1, 3
while square <= n:
print(square, end=" ")
square += step
step += 2
Время: O(√N). Память: O(1).
На что обратить внимание
- Квадрат, равный N, включается; ноль не является квадратом натурального основания в этой задаче.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.