View Code of Problem 20

#include<iostream>
#include<cmath>
using namespace std;

int main(void)
{
  int i,j,n,dp[100001]={0};
    dp[1]=1;dp[2]=1;dp[3]=0;
  for(i=4;i<100001;++i)
    for(j=1;j<i;j+=j)
      if(dp[i-j]==0)
      {dp[i]=1;break;}
  while(cin>>n)
  {
    if(dp[n]==1)
      cout<<"Yes"<<endl;
    else
      cout<<"No"<<endl;
  }
}

Double click to view unformatted code.


Back to problem 20