Trò chơi thú vị

Đề bài

Mô tả

Có một đống gồm n viên sỏi trên bàn. Hai người chơi luân phiên thực hiện nước đi.

Trong một nước đi, người chơi chọn một đống bất kỳ và chia nó thành nhiều đống mới có số sỏi lần lượt là a1>a2>>ak>0, sao cho a1a2=a2a3==ak1ak=1. Nói cách khác, đống được chia thành k đống mà số sỏi là các số nguyên liên tiếp. Số đống k phải không nhỏ hơn 2.

Hai người chơi lần lượt đi, người đi trước là người thứ nhất. Người nào đến lượt mà không thể thực hiện được nước đi nào thì thua. Cả hai đều chơi tối ưu.

Hãy xác định ai thắng. Nếu người thứ nhất thắng, in ra k nhỏ nhất, tức số đống nhỏ nhất mà người thứ nhất có thể chia đống ban đầu ở nước đi đầu tiên để giành chiến thắng.

Dữ liệu vào

Một dòng duy nhất chứa số nguyên n.

Dữ liệu ra

Nếu người thứ nhất thắng, in ra số nguyên k nhỏ nhất là số đống mà người thứ nhất chia đống ban đầu ở nước đi đầu tiên để thắng.

Nếu người thứ hai thắng, in ra 1.

Ràng buộc

  • 1n105

Ví dụ

Input Output Giải thích
3 2 Người thứ nhất chia 3=1+2 thành 2 đống. Đối thủ không còn nước đi nào và thua.
6 -1 Dù chia thế nào (6=1+2+3), người thứ nhất cũng để đối thủ ở thế thắng, nên người thứ hai thắng.
100 8 Số đống nhỏ nhất để nước đi đầu thắng là 8: 100=9+10+11+12+13+14+15+16.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0