题目:
Emuskald needs a fence around his farm, but he is too lazy to build it himself. So he purchased a fence-building robot.
He wants the fence to be a regular polygon. The robot builds the fence along a single path, but it can only make fence corners at a single angle a.
Will the robot be able to build the fence Emuskald wants? In other words, is there a regular polygon which angles are equal to a?
Input
The first line of input contains an integer t (0 < t < 180) — the number of tests. Each of the following t lines contains a single integer a (0 < a < 180) — the angle the robot can make corners at measured in degrees.
Output
For each test, output on a single line "YES" (without quotes), if the robot can build a fence Emuskald wants, and "NO" (without quotes), if it is impossible.
Examples
Input
3 30 60 90
Output
NO YES YES
Note
In the first test case, it is impossible to build the fence, since there is no regular polygon with angle .
In the second test case, the fence is a regular triangle, and in the last test case — a square.
解题报告:一开始想着是用暴力将所有的角度存起来,后来发现根本不现实,因为无论咋咋求解最后都会存在偏差,可能是初等数学存在漏洞,没有想到这一点,就是如何构成一个一个角度为x的多边形,x需要满足什么样的条件呢,就是360%(180-x)==0 。 掌握这个公式,这道题目就是水题,找不出就是卡题。
ac代码:
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n,x;
scanf("%d",&n);
while(n--)
{
scanf("%d",&x);
if(360%(180-x)==0)
printf("YES\n");
else
printf("NO\n");
}
}