#include<stdio.h> #include<math.h> #include<string.h> int k=0; int sum=0; int test(int n) { int i,flag=0,sum=1; if(n==1) flag=1; for(i=0;i<=sqrt(n);i++) { sum*=2; if(sum==n) { flag=1; break; } } return flag; } void f(int n) { int i,j,max,a[1000],temp=1,flag=0; if(test(n)) flag=1; for(i=0;temp<n;i++) { if(test(n-temp)==0) { n=n-temp; flag=1; sum++; f(n); } temp=temp*2; } if(flag==0) sum++; if(sum%2==0) k=1; else k=0; } void main() { int n; while(scanf("%d",&n)!=EOF) { f(n); if(k) printf("Yes\n"); else { sum--; printf("No\n"); } } } |
Double click to view unformatted code.