HƯỚNG DẪN GIẢI ĐỀ KIỂM TRA GIỮA KÌ II – KHỐI 11
Câu 1: Tạo một danh sách có n phần tử là số nguyên a0, a1, a2,… an-1 (với 4 ≤ n ≤ 99) được nhập vào từ bàn phím. Thực hiện các nhiệm vụ theo thứ tự:
+ In ra danh sách vừa nhập.
+ Sắp xếp danh sách vừa nhập theo yêu cầu: số chẵn thì tăng dần từ đầu danh sách, số lẻ thì giảm dần về cuối danh sách.
Ví dụ:
| INPUT | OUPUT |
| 10 | [11, 9, -6, 0, 2, 8, 13, 4, 10, 15] |
| 11 9 -6 0 2 8 13 4 10 15 | [-6, 0, 2, 4, 8, 10, 15, 13, 11, 9] |
Câu 2: Tính tổng số lượng số nguyên tố có trong danh sách, in ra danh sách các số nguyên tố đó từ danh sách đã nhập vào ở trong Câu 1.
Ví dụ:
| INPUT | OUPUT |
| 10 | 3 |
| 11 9 -6 0 2 8 13 4 10 15 | [11, 2, 13] |
# Khởi tạo danh sách có n phần tử
n = int(input("Nhập số phần tử của danh sách: "))
lst = []
for i in range(n):
lst.append(int(input(f"Nhập phần tử thứ {i + 1}: ")))
print("Danh sách vừa nhập là:",lst)
# Khởi tạo danh sách rỗng: chẵn và lẻ.
evens = []
odds = []
for num in lst:
# Nếu số chẵn trong DS thì thêm vào danh sách rỗng chẵn
if num % 2 == 0:
evens.append(num)
# ngược lại là số lẻ trong DS thì thêm vào danh sách rỗng lẻ
else:
odds.append(num)
# Sắp xếp danh sách tăng dần với số chẵn, giảm dần với số lẻ
evens.sort()
odds.sort(reverse=True)
# Nối danh sách chẵn lẻ lại với nhau.
L = list(evens + odds)
print("Danh sách sau khi sắp xếp là:",L)
# Kiểm tra số nguyên tố
KNT = []
SNT = []
dem = 0
for num in L:
# Số nguyên tố là số lớn hơn hoặc =2, chỉ kiểm tra số lớn 2 có là SNT không
if num>=2:
# Gán tổng số ước ban đầu bằng 0, nếu tổng ước >=2 thì không phải SNT
tong_uoc=0
# Kiểm tra lặp từ 2 đến căn 2 của n xem có bao nhiêu ước.
for i in range(2,int(num**0.5)+1):
if num%i==0: tong_uoc=tong_uoc+i
# Số lượng ước >=2 thì thêm vào mảng Không là nguyên tố
if tong_uoc>=2: KNT.append(num)
# Số lượng ước =1 thì thêm vào mảng là số nguyên tố
else:
SNT.append(num)
# Mỗi lần thêm số ng.tố vào mảng thì tăng biến đếm lên 1.
dem+=1
if dem==0:
print("Danh sách nhập vào không có số nguyên tố!")
# In ra tổng số nt và mảng chứa số nguyên tố/ Mảng không ng.tố thì ko in.
else:
print("Danh sách nhập vào có",dem,"số nguyên tố là:",SNT)
Cách tìm Số nguyên tố có thể áp dụng cách Gắn cờ hiệu, trong bài hướng dẫn trước đây.


