题意:
给定一个角度值,问最少在正几边形中可以找到三个点 \(A\) ,\(B\) ,\(C\) ,使 \(∠ABC\) 为这个角度值,如果不存在这个正 \(n\) 边形,则输出 \(-1\) ,有多组数据。
思路:
- 首先可以发现不可能数据使得程序输出 \(-1\) ,因为任意 \(1^{\circ}\leq\theta<180^{\circ}\) 都可以由一个正 \(360\) 边形得出。
- 然后可以发现对于任意正 \(n\) 边形 \((n>2)\) 所能凑出的最小角度一定是
最大角比较显然,就是这个正多边形的内角,可以发现能组成的所有角一定能被最小角整除,这个角必然是 \(k\) \((k>0)\) 个最小的角组成的
\[\theta=\frac{k}{n}\times180^{\circ} \]整理可得 \(n\times\theta=k\times180^{\circ}\) ,那么可以考虑枚举 \(n\) ,如果出现 \(n\times\theta\) 可以被 \(180^{\circ}\) 整除,且 \(\theta\) 小于正 \(n\) 边形能凑出的最大角,即可。