trang chủ / bài tập / prodmod1

Tích bằng 1 modulo N

Đề bài

Mô tả

Cho số nguyên n. Xét dãy số 1,2,,n1.

Hãy tìm dãy con dài nhất của dãy này sao cho tích các phần tử của nó chia n1.

Dãy b được gọi là dãy con của dãy a nếu b nhận được từ a bằng cách xóa đi một số (có thể là không có, có thể là tất cả) phần tử. Tích của dãy con rỗng được quy ước bằng 1.

Dữ liệu vào

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

Dữ liệu ra

Dòng đầu tiên in ra một số nguyên k là độ dài của dãy con dài nhất tìm được.

Dòng thứ hai in ra k phần tử của dãy con đó theo thứ tự tăng dần.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 2n105

Ví dụ

Input Output Giải thích
5 3
1 2 3
Tích các phần tử là 1·2·3=61(mod5). Dãy con dài hơn duy nhất là [1,2,3,4] với tích 244(mod5), không thỏa mãn. Vậy đáp án là 3.
8 4
1 3 5 7
Tích các phần tử là 1·3·5·7=1051(mod8). Không tồn tại dãy con nào có từ 5 phần tử trở lên thỏa mãn.

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