Graph(2014辽宁ACM省赛)[通俗易懂]

Graph(2014辽宁ACM省赛)

大家好,又见面了,我是全栈君。


问题 F: Graph

时间限制: 1 Sec  
内存限制: 128 MB


提交: 30  
解决: 5

[
论坛]

题目描写叙述

Your task is to judge whether a regular polygon can be drawn only by straightedge and compass.

The length of the straightedge is infinite.

The width of the compass is infinite.

The straightedge does not have scale.

输入

There are several test cases. Each test case contains a positive integer n (3<=n<=10^9). The input will be ended by the End Of File.

输出

If the regular polygon with n sides can be drawn only by straightedge and compass, output YES in one line, otherwise, output NO in one line.

例子输入

34567

例子输出

YESYESYESYESNO



坑大爹的一题。该死的费马数。。。。。


p=2^n;
或 p=(2^n)*m; m为若干个不同样的费马数的积
//满足要求的边为 (2^n)*p p为费马素数
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        while(n%2==0)
        {
            n/=2;
        }
        if(n==1)
        {
            printf("YES\n");
            continue;
        }
        if(n%3==0)
            n/=3;
        if(n%5==0)
            n/=5;
        if(n%17==0)
            n/=17;
        if(n%257==0)
            n/=257;
        if(n%65537==0)
            n/=65537;
        if(n==1)
        {
            printf("YES\n");
        }
        else
            printf("NO\n");
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115482.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号