题意:给一个角度(整数),问你最小的正几边形的三个点可以连出来。
思路:
1.n边形内角和 180*(n-2);
2.正n边形内角 180*(n-2)/n;(即该题n变形最大的角)
3.正n边形三个点最小的角度为180*(n-2)/(n*(n-2))=(180/n);且任意三点的角度是该角度的倍数;
所以从i=3开始枚举判断给出的角度是否为(180/i)的倍数。并且小于180*(i-2)/i;
#include<bits/stdc++.h>
using namespace std;
int main()
{
// freopen("in.txt", "r", stdin);
int T; cin >> T;
while(T--)
{
int a; cin >> a;
for(int i = 3; i <= 360; i++)
if(a * i % 180 == 0 && a * i / 180 < i - 1)
{
cout << i << endl;
break;
}
}
return 0;
}