题目连接: 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;
}
转载请注明原文地址: https://yun.8miu.com/read-134560.html