Giải mã
Đề bài
Mô tả
Cho một hợp số . Ta viết tất cả các ước của lớn hơn lên một vòng tròn, mỗi ước đúng một lần. Thứ tự ban đầu của các ước trên vòng tròn là do ta tự chọn.
Mỗi bước, ta được chọn hai số kề nhau trên vòng tròn và chèn BCNN (bội chung nhỏ nhất) của chúng vào giữa hai số đó. Số vừa chèn trở thành một phần tử của vòng tròn và tham gia vào quan hệ kề như mọi số khác. Ta có thể lặp lại thao tác này bao nhiêu lần tùy ý.
Vòng tròn được gọi là đã giải mã nếu mọi cặp số kề nhau đều không nguyên tố cùng nhau.
Hãy chọn thứ tự ban đầu sao cho số bước cần thực hiện là ít nhất, và cho biết số bước ít nhất đó.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số lượng bộ dữ liệu.
- Mỗi dòng trong dòng tiếp theo chứa một hợp số .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra hai dòng:
- Dòng thứ nhất: thứ tự ban đầu của các ước lớn hơn trên vòng tròn (phần tử cuối cùng được coi là kề với phần tử đầu tiên).
- Dòng thứ hai: số bước ít nhất cần thực hiện với thứ tự đó.
Nếu có nhiều thứ tự cùng cho số bước ít nhất, in ra thứ tự bất kỳ.
Ràng buộc
- , là hợp số
- Tổng số ước của trên tất cả các bộ dữ liệu không vượt quá
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 6 4 30 |
2 3 6 1 2 4 0 10 2 30 6 3 15 5 0 |
Với chỉ có ba ước ; dù xếp thế nào thì và cũng kề nhau nên phải chèn , vòng tròn thành . Với hai ước đã không nguyên tố cùng nhau. Với có thể xếp cả bảy ước mà không cần bước nào. |
| 1 18 |
6 2 18 3 9 0 |
Các cặp kề nhau là , mọi cặp đều có ước chung lớn hơn . |
Bình luận