Tổng ước chung lớn nhất

Đề bài

Mô tả

Cho Q truy vấn. Mỗi truy vấn cho một số nguyên dương n, hãy tính

S(n)=∑i=1n∑j=1ngcd(i,j),

trong đó gcd(i,j) là ước chung lớn nhất của i và j.

Đáp số có thể rất lớn (tới khoảng 4·1013) nhưng không lấy theo modulo — hãy in ra giá trị nguyên chính xác.

Dữ liệu vào

  • Dòng đầu chứa số nguyên Q — số truy vấn.
  • Dòng thứ hai chứa Q số nguyên n1,n2,…,nQ — tham số của từng truy vấn.

Dữ liệu ra

In ra Q dòng, dòng thứ k là giá trị S(nk).

Ràng buộc

  • 1≤Q≤10
  • 1≤nk≤2·106
  • Tổng các nk trên mọi truy vấn không vượt quá 2·106.

Ví dụ

Input Output Giải thích
3
1 2 3
1
5
12
S(1)=gcd(1,1)=1. S(2): bảng gcd 2×2 là gcd(1,1)+gcd(1,2)+gcd(2,1)+gcd(2,2)=1+1+1+2=5. S(3)=12 (cộng đủ 9 cặp).
2
5 10
37
189
Với n=5 tổng của 25 giá trị gcd bằng 37; với n=10 tổng của 100 giá trị bằng 189.

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