trang chủ / đề bài / coprimen

Đếm số nguyên tố cùng nhau

Đề bài

Mô tả

Cho T truy vấn. Mỗi truy vấn gồm hai số nguyên dương n và m. Với mỗi truy vấn, hãy đếm số nguyên x trong đoạn [1,m] sao cho gcd(x,n)=1 (tức là x nguyên tố cùng nhau với n).

Lưu ý rằng m có thể khác n, nên đây không đơn thuần là hàm Euler φ(n).

Dữ liệu vào

  • Dòng đầu chứa số nguyên T — số truy vấn.
  • Mỗi dòng trong T dòng tiếp theo chứa hai số nguyên n và m.

Dữ liệu ra

In ra T dòng, mỗi dòng là một số nguyên: số lượng x∈[1,m] thỏa gcd(x,n)=1 của truy vấn tương ứng.

Ràng buộc

  • 1≤T≤2·104
  • 1≤n≤109
  • 1≤m≤109

Ví dụ

Input Output Giải thích
3
12 20
1 10
7 7
7
10
6
Truy vấn 1: n=12 có các ước nguyên tố phân biệt {2,3}. Trong [1,20] có 20 số, bỏ 10 số chia hết cho 2, bỏ 6 số chia hết cho 3, cộng lại 3 số chia hết cho 6 (đã bị trừ hai lần): 20−10−6+3=7. Truy vấn 2: n=1, mọi số đều nguyên tố cùng nhau với 1 nên đáp số là 10. Truy vấn 3: n=7 là số nguyên tố, trong [1,7] chỉ có 7 không nguyên tố cùng nhau với 7, nên đáp số là 6.
3
1000000000 1000000000
2 7
9 30
400000000
4
20
Truy vấn 1: n=109=29·59, ước nguyên tố phân biệt {2,5}; 109−5·108−2·108+108=4·108. Truy vấn 2: n=2, các số lẻ trong [1,7] là 1,3,5,7 — đáp số 4. Truy vấn 3: n=9=32 chỉ có ước nguyên tố 3; 30−10=20.

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