Lenstra's algorithm