trang chủ / đề bài / prodmod1

Tích bằng 1 modulo N

Đề bài

Mô tả

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

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 n dư 1.

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

  • 2≤n≤105

Ví dụ

Input Output Giải thích
5 3
1 2 3
Tích các phần tử là 1·2·3=6≡1(mod5). Dãy con dài hơn duy nhất là [1,2,3,4] với tích 24≡4(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=105≡1(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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0