https://www.acmicpc.net/problem/20004
시간 1초, 메모리 512MB
input :
output :
조건 :
접근을 생각하지 못했다...
그냥 재귀로 풀어야 하나 싶었다...
그러나, DP 처럼 생각을 했어야 했다.
만약 현재 n = 3 일때. 선공의 기준에서.
남은 수가.
1개 => 패배
2, 3, 4 => 승리
5개 => 패배
6, 7, 8 => 승리
9 => 패배.
이와 같이 (31 % n + 1) == 1 일 때 선공이 패배를 한다.
그리하여 위의 식을 성립하는 n들을 찾아서 출력해주자.
import sys
a = int(sys.stdin.readline())
ans = []
for i in range(1, a + 1):
if 31 % (i + 1) == 1:
ans.append(i)
for item in ans:
print(item)