Понимаю, что с большими числами у меня время в разы возрастает, т.к. перебираю все числа от 0 до N. Какой алгоритм можно применить, что бы не перебирать все друг за другом?