Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho hai số nguyên dương ~L ≤ R~. Hãy đếm xem trong đoạn ~[L, R]~ có bao nhiêu số nguyên tố.
Input
- Dòng đầu ghi số nguyên dương ~T~ là số bộ test;
- ~T~ dòng tiếp theo, mỗi dòng chứa hai số nguyên dương ~L ≤ R~ cách nhau bởi một dấu cách.
Giới hạn:
- ~1 ≤ T ≤ 10^2, 1 ≤ L ≤ R ≤ 10^6~.
Output
- Với mỗi cặp số ~L~ và ~R~, ghi ra trên một dòng số số nguyên tố trong đoạn ~[L, R]~.
Sample
Input #1
2
2 3
10 15
Output #1
2
2
Problem source: Chuyên Sơn La Online Judge
Bình luận
Nếu bài này ae chỉ sàng số nguyên tố rồi duyệt đoạn từ [l->R]xem có bao nhiêu sô nguyên tố thì chắc chắn bị TLE , Ae nên kết hợp tư tưởng prefixSum nhé .Kiểu anh sàng xong thì duyệt thêm 1 vòng for cho tập S , S sẽ chứa số lượng số nguyên tố trong đoạn 11 đến i (i<=1e6) .S[1]=0,S[2]=1(chứa số 2),S[3]=2 (chứa 2,3) ,S[4]=2 (chứa 2 ,3) Vậy công thức để lưu S[i] là nếu xét phần tử i hiện tại mà nó là số nguyên tố thì S[i]=S[i-1]+1 , còn không thì lưu S[i]=S[i-1]... FAN MU muôn năm...
sao toàn 4/10 6 test quá tg
toàn chạy quá thời gian
Bạn sử dụng sàng số nguyên tố nhé
sàng+prefix sum