HDU 1719 Friend 【规律】

来源:互联网 发布:国产家具品牌 知乎 编辑:程序博客网 时间:2024/05/07 19:27

Friend

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2250    Accepted Submission(s): 1130


Problem Description
Friend number are defined recursively as follows.
(1) numbers 1 and 2 are friend number;
(2) if a and b are friend numbers, so is ab+a+b;
(3) only the numbers defined in (1) and (2) are friend number.
Now your task is to judge whether an integer is a friend number.
 


Input
There are several lines in input, each line has a nunnegative integer a, 0<=a<=2^30.
 


Output
For the number a on each line of the input, if a is a friend number, output “YES!”, otherwise output “NO!”.
 


Sample Input
31312112131
 


Sample Output
YES!YES!NO!
 



#include <iostream>#include<cstdio>using namespace std;int main(){    int n;    while(~scanf("%d",&n))    {        if(n==0)        {            printf("NO!\n");            continue;        }        n+=1;        while(n%2==0||n%3==0)        {            if(n%2==0)                n=n/2;            if(n%3==0)                n=n/3;        }        if(n==1)            printf("YES!\n");        else            printf("NO!\n");    }    return 0;}


0 0
原创粉丝点击