SỐ NGUYÊN TỐ
LÝ THUYẾT SỐ NGUYÊN TỐ
PRIME01 - Phân loại số
Giới hạn
- Thời gian: 1 giây
- Bộ nhớ: 256 MB
Đề bài
Cho N số nguyên không âm a1, a2, ..., aN.
Với mỗi số, hãy phân loại nó thuộc một trong ba loại:
PRIME: số nguyên tố;COMPOSITE: hợp số;NEITHER: không phải số nguyên tố cũng không phải hợp số.
Lưu ý: 0 và 1 là NEITHER.
Dữ liệu vào
- Dòng 1 chứa số nguyên
N. - Dòng 2 chứa
Nsố nguyêna1, a2, ..., aN.
Dữ liệu ra
In ra N dòng, dòng thứ i là kết quả phân loại của ai.
Ràng buộc
1 ≤ N ≤ 1000 ≤ ai ≤ 10^6
Subtask
| Sub | Điểm | Ràng buộc |
|---|---|---|
| 1 | 40% | N ≤ 10, ai ≤ 100 |
| 2 | 60% | N ≤ 100, ai ≤ 10^6 |
Ví dụ
Input
5
0 1 2 4 17
Output
NEITHER
NEITHER
PRIME
COMPOSITE
PRIME
PRIME02 - Kiểm tra số nguyên tố
Giới hạn
- Thời gian: 1 giây
- Bộ nhớ: 256 MB
Đề bài
Cho một số nguyên dương n.
Hãy kiểm tra n có phải là số nguyên tố hay không.
Dữ liệu vào
Một dòng chứa số nguyên dương n.
Dữ liệu ra
- In
YESnếunlà số nguyên tố. - In
NOnếunkhông phải số nguyên tố.
Ràng buộc
1 ≤ n ≤ 10^9
Subtask
| Sub | Điểm | Ràng buộc |
|---|---|---|
| 1 | 30% | n ≤ 100 |
| 2 | 30% | n ≤ 10^6 |
| 3 | 40% | n ≤ 10^9 |
Ví dụ
Input
29
Output
YES
PRIME03 - Kiểm tra nhiều số lớn
Giới hạn
- Thời gian: 1 giây
- Bộ nhớ: 256 MB
Đề bài
Cho Q truy vấn, mỗi truy vấn gồm một số nguyên dương n.
Với mỗi truy vấn, hãy kiểm tra n có phải số nguyên tố hay không.
Bài này yêu cầu thuật toán kiểm tra tối ưu đến √n.
Dữ liệu vào
- Dòng 1 chứa số nguyên
Q. Qdòng tiếp theo, mỗi dòng chứa một số nguyên dươngn.
Dữ liệu ra
In ra Q dòng, mỗi dòng là:
YESnếunlà số nguyên tố;NOnếunkhông phải số nguyên tố.
Ràng buộc
1 ≤ Q ≤ 1001 ≤ n ≤ 10^12
Subtask
| Sub | Điểm | Ràng buộc |
|---|---|---|
| 1 | 30% | Q ≤ 10, n ≤ 10^6 |
| 2 | 30% | Q ≤ 50, n ≤ 10^9 |
| 3 | 40% | Q ≤ 100, n ≤ 10^12 |
Ví dụ
Input
4
2
10
999983
1000000
Output
YES
NO
YES
NO
PRIME04 - Liệt kê số nguyên tố bằng sàng
Giới hạn
- Thời gian: 1 giây
- Bộ nhớ: 256 MB
Đề bài
Cho số nguyên dương N.
Hãy in ra tất cả các số nguyên tố không vượt quá N theo thứ tự tăng dần.
Dữ liệu vào
Một dòng chứa số nguyên dương N.
Dữ liệu ra
In ra các số nguyên tố không vượt quá N trên một dòng, các số cách nhau một dấu cách.
Nếu không có số nguyên tố nào, in ra dòng trống.
Ràng buộc
1 ≤ N ≤ 10^6
Subtask
| Sub | Điểm | Ràng buộc |
|---|---|---|
| 1 | 30% | N ≤ 100 |
| 2 | 30% | N ≤ 10^4 |
| 3 | 40% | N ≤ 10^6 |
Ví dụ
Input
20
Output
2 3 5 7 11 13 17 19
PRIME05 - Đếm số nguyên tố trong đoạn
Giới hạn
- Thời gian: 1 giây
- Bộ nhớ: 256 MB
Đề bài
Cho Q truy vấn. Mỗi truy vấn gồm hai số nguyên L, R.
Với mỗi truy vấn, hãy đếm số lượng số nguyên tố trong đoạn [L, R].
Bài này gợi ý dùng sàng Eratosthenes kết hợp mảng cộng dồn số nguyên tố.
Dữ liệu vào
- Dòng 1 chứa số nguyên
Q. Qdòng tiếp theo, mỗi dòng chứa hai số nguyênL R.
Dữ liệu ra
In ra Q dòng, dòng thứ i là số lượng số nguyên tố trong đoạn [L, R] của truy vấn thứ i.
Ràng buộc
1 ≤ Q ≤ 1000001 ≤ L ≤ R ≤ 10^6
Subtask
| Sub | Điểm | Ràng buộc |
|---|---|---|
| 1 | 30% | Q ≤ 100, R ≤ 1000 |
| 2 | 30% | Q ≤ 10000, R ≤ 10^5 |
| 3 | 40% | Q ≤ 100000, R ≤ 10^6 |
Ví dụ
Input
3
1 10
10 30
90 100
Output
4
6
1
PRIME06 - Phân tích thừa số nguyên tố
Giới hạn
- Thời gian: 1 giây
- Bộ nhớ: 256 MB
Đề bài
Cho số nguyên dương n.
Hãy phân tích n thành tích các thừa số nguyên tố.
Dữ liệu vào
Một dòng chứa số nguyên dương n.
Dữ liệu ra
- Dòng đầu in số lượng thừa số nguyên tố khác nhau.
- Các dòng tiếp theo, mỗi dòng in hai số
p e, nghĩa là thừa số nguyên tốpxuất hiện với số mũe. - Các thừa số được in theo thứ tự tăng dần.
- Nếu
n = 1, chỉ in0.
Ràng buộc
1 ≤ n ≤ 10^12
Subtask
| Sub | Điểm | Ràng buộc |
|---|---|---|
| 1 | 30% | n ≤ 10^6 |
| 2 | 30% | n ≤ 10^9 |
| 3 | 40% | n ≤ 10^12 |
Ví dụ
Input
60
Output
3
2 2
3 1
5 1
PRIME07 - ƯCLN và BCNN bằng phân tích nguyên tố
Giới hạn
- Thời gian: 1 giây
- Bộ nhớ: 256 MB
Đề bài
Cho hai số nguyên dương A và B.
Hãy tính ƯCLN(A, B) và BCNN(A, B).
Bài toán có thể giải bằng thuật toán Euclid, nhưng trong chủ đề số nguyên tố, ta có thể phân tích A, B thành thừa số nguyên tố rồi lấy:
- ƯCLN: lấy số mũ nhỏ nhất của từng thừa số chung;
- BCNN: lấy số mũ lớn nhất của từng thừa số xuất hiện.
Dữ liệu vào
Một dòng chứa hai số nguyên dương A B.
Dữ liệu ra
In ra hai số:
UCLN BCNN
Ràng buộc
1 ≤ A, B ≤ 10^9BCNN(A, B) ≤ 10^18
Subtask
| Sub | Điểm | Ràng buộc |
|---|---|---|
| 1 | 30% | A, B ≤ 1000 |
| 2 | 30% | A, B ≤ 10^6 |
| 3 | 40% | A, B ≤ 10^9 |
Ví dụ
Input
60 84
Output
12 420