Shanks algoritm