#5347. Composite Coloring (Mã bài: COMPCOLOR)

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một dãy gồm n hợp số a_1, a_2, \dots, a_n . Bạn cần tô màu mỗi số bằng một trong m màu (từ 1 đến m ) sao cho hai điều kiện sau được thỏa mãn:

  1. Với mỗi màu từ 1 đến m , có ít nhất một số được tô bằng màu đó.
  2. Với hai số bất kỳ a_i a_j được tô cùng màu, thì ước chung lớn nhất của chúng lớn hơn 1 ( \gcd(a_i, a_j) > 1 ).

Yêu cầu: Bạn hãy tìm một cách tô màu hợp lệ sử dụng số lượng màu m nhỏ nhất có thể.

Dữ liệu:

  • Dòng đầu tiên chứa số lượng bộ test t .
  • Mỗi bộ test bắt đầu bằng một số nguyên n .
  • Dòng tiếp theo chứa n hợp số a_1, a_2, \dots, a_n .

Kết quả: Với mỗi bộ test:

  • Dòng đầu tiên in ra số màu tối thiểu m được sử dụng.
  • Dòng thứ hai in ra n số nguyên, là màu của các số a_1, \dots, a_n .

Ví dụ:

Dữ liệu:

1
3
6 10 15

Kết quả:

1
1 1 1

Giải thích: \gcd(6,10)=2, \gcd(6,15)=3, \gcd(10,15)=5 . Tất cả các cặp đều có GCD > 1, nên có thể tô cùng 1 màu.

Giới hạn:

  • 1 \le t \le 1000
  • 1 \le n \le 1000
  • 4 \le a_i \le 1000
  • Tổng n trên tất cả các test không vượt quá 10^4 .