#735. Đường đi mạnh nhất (GCDPATHS)

Bộ nhớ: 512 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 số gồm n số nguyên a_1, a_2, \dots, a_n . Một "path" là một dãy con các chỉ số i_1, i_2, \dots, i_k ( k \ge 1 ) sao cho 1 \le i_1 < i_2 < \dots < i_k \le n \gcd(a_{i_1},a_{i_2}, \dots,a_{i_k})>1 . "Strength" của một path được định nghĩa là k \times \gcd(a_{i_1}, a_{i_2}, \dots, a_{i_k}) .

Yêu cầu: Hãy tính tổng strength của tất cả các path có thể. Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho 10^9 + 7 .

Dữ liệu:

  • Dòng đầu tiên chứa số nguyên n ( 1 \le n \le 200000 ).
  • Dòng thứ hai chứa n số nguyên a_1, a_2, \dots, a_n ( 1 \le a_i \le 10^6 ).

Kết quả: In ra một số nguyên duy nhất là tổng strength của tất cả các path, modulo 10^9 + 7 .

Ví dụ:

Dữ liệu:

3
3 3 1

Kết quả:

12

Dữ liệu:

4
2 3 4 6

Kết quả:

39

Giới hạn: Giá trị a_i tối đa là 10^6 .