canuc80k7001·2/50

Tập Con Có GCD Bằng Một

Nộp bài trên LQDOJ

Bài 7.1 · Möbius Function

Cho một dãy số nguyên dương, đếm các tập chỉ số không rỗng sao cho gcd của toàn bộ giá trị được chọn bằng .

Một tập chỉ số xác định một dãy con theo thứ tự chỉ số tăng dần. Tập phải chứa ít nhất một chỉ số; hai tập chỉ số khác nhau luôn được tính là hai cách chọn khác nhau.

Input

  • Dòng đầu chứa số phần tử .
  • Dòng tiếp theo chứa số nguyên dương .

Output

  • In số tập chỉ số thỏa mãn theo modulo . Hai cách chọn khác chỉ số được xem là khác nhau.

Constraints

  • Mọi phép tính kết quả thực hiện modulo .

Scoring

  • Subtask ( số điểm): và .
  • Subtask ( số điểm): Không có giới hạn bổ sung.

Example

Test 1

Input

3
2 3 4

Output

3

Giải thích: Ba tập chỉ số hợp lệ tạo ra các dãy giá trị và . Mọi tập còn lại có gcd lớn hơn , nên đáp án là .

Lời giải tóm tắt
  • Ý tưởng: Với mỗi d, đếm số phần tử chia hết cho d rồi dùng tổng μ(d)·(2^{c_d}−1).
  • Chứng minh đúng: Một tập chỉ số có gcd bằng g được đưa vào 2^{c_d}−1 đúng với mọi d chia g. Tổng các hệ số μ(d) trên các ước của g giữ lại chính xác các tập có g=1.
  • Độ phức tạp: O(A log A+n) thời gian và O(A+n) bộ nhớ.