카드 뭉치에는 짝수 개인 2n장의 카드 a1,a2,…,a2n이 들어 있고, 모두 서로 다르다 (a1<a2<⋯<a2n). 처음에 뭉치는 완전히 정렬된 상태다. 첫 번째 카드가 a1, 두 번째 카드가 a2이고, 이런 식으로 마지막 카드가 a2n이다.
딜러는 다음 두 단계로 이루어진 섞기를 반복한다.
- 뭉치를 절반으로 나눈다.
- 두 절반의 카드를 번갈아 끼워 넣는다. 1단계를 시작할 때의 카드 순서가 x1,x2,…,x2n이면, 2단계가 끝난 뒤의 순서는 xn+1,x1,xn+2,x2,…,x2n,xn이 된다.
카드 뭉치의 카드 수가 주어질 때, 뭉치가 처음의 정렬된 순서로 돌아오려면 이 섞기를 몇 번 반복해야 하는지 구하는 프로그램을 작성하라.