Cắt dãy

Đề bài

Mô tả

Cho một dãy số nguyên dương a1,a2,…,an.

Với một đoạn liên tiếp, ta nói đoạn đó hợp lệ nếu tích của tất cả các phần tử trong đoạn bằng bội chung nhỏ nhất (BCNN) của chúng. Điều này tương đương với việc mọi cặp phần tử trong đoạn đều nguyên tố cùng nhau (không chia sẻ ước nguyên tố chung nào).

Cho q truy vấn độc lập. Mỗi truy vấn gồm hai số l,r: hãy chia đoạn al,al+1,…,ar thành ít nhất các đoạn con liên tiếp sao cho mỗi đoạn con đều hợp lệ. In ra số đoạn con nhỏ nhất cần thiết.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và q.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an.
  • q dòng tiếp theo, mỗi dòng chứa hai số nguyên l và r mô tả một truy vấn.

Dữ liệu ra

  • Với mỗi truy vấn, in ra trên một dòng số đoạn con nhỏ nhất.

Ràng buộc

  • 1≤n,q≤105
  • 1≤ai≤105
  • 1≤l≤r≤n

Ví dụ

Input Output Giải thích
6 3
2 3 10 7 5 14
1 6
2 4
3 5
3
1
2
Truy vấn 1 (cả dãy): chia thành [2], [3,10,7], [5,14] gồm 3 đoạn (một cách khác: [2,3], [10,7], [5,14]).
Truy vấn 2 (đoạn 2..4): [3,10,7] đã hợp lệ nên chỉ cần 1 đoạn.
Truy vấn 3 (đoạn 3..5): chia thành [10,7], [5] gồm 2 đoạn.
1 1
100000
1 1
1 Đoạn chỉ có một phần tử luôn hợp lệ.

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