View Code of Problem 20

#include<stdio.h>

int main()
{
	int n;
	int a[100005]={0};
	
	a[1] = 1;
	a[2] = 1;
	a[3] = 0;
	
	for(int i = 4; i < 100000; i++)
	{
		int flag = 1;
		for(int jmp = 1; jmp < i; jmp *= 2)
			if(a[i-jmp] == 0)
				flag = 0;
		if(flag)
			a[i] = 0;
		else
			a[i] = 1;		
	}
		
	while(scanf("%d", &n) != EOF)
		if(a[n] == 0)
			printf("No\n");
		else
			printf("Yes\n");
	return 0;
}

Double click to view unformatted code.


Back to problem 20