>>957
(1 << p) が一周
(1 << p - i) は一周を(1<<i)で割った値、つまり(1<<i)乗根