а вот и нерекурсивный алгоритм