Kiểm tra giữa khóa cho anh Thanh
Kiểm tra một số nguyên là số nguyên tố
Nộp bàiPoint: 1
Xây dựng chương trình kiểm tra một số nguyên N là nguyên tố hay không, nếu là số nguyên tố thì trả về YES còn không phải trả về NO
Ràng buộc: ~0 \leq N \leq 10^{18}~
Input 01:
2
Output 01:
YES
Input 02:
1
Output 02:
NO
Input 03:
10
Output 03:
NO
Input 04:
1000000007
Output 04:
YES
Kiểm tra số hoàn hảo
Nộp bàiPoint: 1
Xây dựng chương trình kiểm tra một số nguyên N > 0 có phải là số hoàn hảo. Nếu đúng thì in ra YES, còn không thì in ra NO
Số hoàn hảo là số mà tổng tất cả các ước của nó (không tính chính nó) sẽ bằng chính nó
Ràng buộc: ~0 \leq N \leq 10^6~
Input 01:
28
Output 01:
YES
28 có các ước là 1, 2, 4, 7, 14 và tổng các số này lại bằng chính 28 nên 28 là số hoàn hảo
Input 02:
30
Output 02:
NO
Kiểm Tra Số Hoàn Hảo (Phiên bản Hard)
Nộp bàiPoint: 1
Một số nguyên dương N được gọi là số hoàn hảo nếu tổng các ước dương thực sự của nó (không kể chính nó) bằng chính nó.
Ví dụ: 6 = 1 + 2 + 3.
Với N nhỏ, ta có thể duyệt ước. Nhưng với N lớn, hãy dùng định lý Euclid-Euler.
Cho số nguyên dương N. Hãy kiểm tra xem N có phải là số hoàn hảo hay không.
Input:
Dòng đầu tiên chứa số nguyên T (số lượng test case, T <= 100).
T dòng tiếp theo, mỗi dòng chứa một số nguyên N.
Giới hạn:
- 1 <= N <= 10^18 (Lưu ý: N rất lớn, không thể vòng lặp đếm ước).
Output:
- Với mỗi test case, in ra "YES" nếu N là số hoàn hảo, ngược lại in "NO".
Ví dụ
Input:
3
6
28
100
Output:
YES
YES
NO
Gợi ý thuật toán:
Thay vì tính tổng ước, hãy kiểm tra xem N có khớp với dạng 2^(p-1) * (2^p - 1) hay không.
B1: Chia N cho 2 liên tục để tìm 2^(p-1). Từ đó suy ra p.
B2: Kiểm tra xem phần còn lại có bằng (2^p - 1) không.
B3: Kiểm tra xem (2^p - 1) có phải là số nguyên tố không
Số nguyên tố đầu tiên trong mảng
Nộp bàiPoint: 1
Nhập vào một mảng các số nguyên A có N phần tử, tìm phần tử là số nguyên tố đầu tiên trong mảng. Nếu có thì in ra vị trí của nó, nếu không có thì in ra NONE
Ràng buộc: ~0 < N \leq 10^6~; ~0 \leq A[i] \leq 10^6~
Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N, dòng thứ 2 là N phần tử trong mảng A.
In ra vị trí của số nguyên tố đầu tiên trong mảng
Input 01:
5
5 1 4 6 3
Output 01:
1
Số nguyên tố đầu tiên trong mảng ở vị trí 1
Input 02:
6
1 4 1 4 1 8
Output 02:
NONE
Tính trung bình các số nguyên tố trong mảng
Nộp bàiPoint: 1
Cho mảng A có N phần tử là các số nguyên. Hãy tính trung bình cộng các số nguyên tố trong mảng, làm tròn lấy 2 chữ số sau phần thập phân
Ràng buộc: ~1<=N<=1000; 0<=A[i]<=10^3~
Input:
5
1 2 3 4 5
Output:
3.33