给定两个正整数𝑛和𝑘,询问在一个圆上你最少需要几个点,才能在这些点上构造出𝑘个边数小于等于𝑛的正多边形。
假设我们已经构造出了$p$边形,实际上$k|p$也都构造出来了。增加多出来的点数即是$\phi (p)$。
或者这么理解会多出来的$\frac{1}{p}+\frac{2}{p}…\frac{p}{p}$个点,发现有些点可以约分。就是已经构造出来的点又$\phi (p)>\phi(k)$。就可以贪心得去选,因为选到$p$边形的时候前面$k$一定选过。
- 都有公共顶点$\frac{p}{p},+1$
- 二边形不存在,对于偶数边$+1$例如$\frac{2}{4},\frac{2}{6}$,$\phi(2,1)=1,\phi(3,4,6)=2$,需要构造$\geq4$,需要$+1$,特判$3$即可
代码
1 |
|