题目连接: https://codeforces.com/problemset/problem/1096/C
题目大意: 给一个角度,问正几边形的三个结点连边能形成这个角度
一个有趣的结论 正n边形能形成的所有角度为 180*k/n k=1.2…n-2
证明出题人给了
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<iostream>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<stdlib.h>
#include<algorithm>
#include<time.h>
#include<unordered_map>
#define bug1(g) cout<<"test: "<<g<<endl
#define bug2(g,i) cout<<"test: "<<g<<" "<<i<<endl
#define bug3(g,i,k) cout<<"test: "<<g<<" "<<i<<" "<<k<<endl
#define bug4(a,g,i,k) cout<<"test: "<<a<<" "<<g<<" "<<i<<" "<<k<<endl
using namespace std;
typedef long long ll;
ll n;
int t;
int main()
{
ios::sync_with_stdio(0);
cin>>t;
while(t--){
cin>>n;
ll c=__gcd(n,180ll);
ll ans=-1;
for(ll i=1;i*180/c<=998244353;i++)
{
if(i*180/c>=i*n/c+2)
{ans=i;break;}
}
if(ans!=-1)
cout<<ans*180/c<<endl;
else cout<<ans<<endl;
}
return 0;
}