Professional Documents
Culture Documents
Với mong muốn để những em học sinh và những quý đọc giả nào có một
chút ít quan tâm đến ngôn ngữ lập trình Python khi nào muốn dùng đến cũng có
cái để xem qua và cũng có thể góp được một phần nhỏ nhằm hạn chế bớt một chút
ít thời gian quý báu của quý đọc giả. Bản thân tôi đã tập hợp được một số đề thi
học sinh giỏi cấp huyện môn tin THCS và soạn ra tập tài liệu “Bài tập Python -
Dành cho học sinh trung học cơ sở” này.
Với lượng kiến thức ít ỏi của bản thân, chắc chắn trong các bài soạn sẽ không
thể tránh khỏi những thiếu sót hoặc cách giải không phải là cách giải tốt nhất, rất
mong quý đọc giả khi xem qua nếu thấy bài soạn còn sai sót chỗ nào thì xin nhờ
quý đọc giả góp ý, chỉ bảo thêm cho tôi để tôi có thêm sự hiểu biết về kiến thức.
Xin cảm ơn quý đọc giả!
Sau khi cài đặt Python vào máy tính, chúng ta có thể bắt đầu việc lập trình
bằng các giao diện có sẵn của Python. Nhưng để cho giao diện dễ nhìn và để
khi viết các câu lệnh được dễ dàng hơn, theo tôi chúng ta nên cài đặt thêm môi
trường PyCharm để viết các câu lệnh trong môi trường PyCharm này.
Hiện tại, môi trường PyCharm có 2 phiên bản đó là: PyCharm Professional
và PyCharm Community Edition. Phiên bản Professional là phiên bản dành cho
những dự án lớn, còn phiên bản Community là phiên bản dành cho mục đích học
tập, phiên bản Community không bị hết hạn. Chính vì vậy, tôi đã chọn phiên bản
Community của PyCharm để soạn các nội dung này.
Trang 2
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
MỤC LỤC
ĐỀ SỐ 1 ...................................................................................................................................... 4
ĐỀ SỐ 2 ...................................................................................................................................... 9
ĐỀ SỐ 3 .................................................................................................................................... 14
ĐỀ SỐ 4 .................................................................................................................................... 18
ĐỀ SỐ 5 .................................................................................................................................... 22
ĐỀ SỐ 6 .................................................................................................................................... 26
ĐỀ SỐ 7 .................................................................................................................................... 30
ĐỀ SỐ 8 .................................................................................................................................... 35
ĐỀ SỐ 9 .................................................................................................................................... 39
ĐỀ SỐ 10 .................................................................................................................................. 43
ĐỀ SỐ 11 .................................................................................................................................. 48
ĐỀ SỐ 12 .................................................................................................................................. 52
ĐỀ SỐ 13 .................................................................................................................................. 55
ĐỀ SỐ 14 .................................................................................................................................. 59
ĐỀ SỐ 15 .................................................................................................................................. 62
ĐỀ SỐ 16 .................................................................................................................................. 66
ĐỀ SỐ 17 .................................................................................................................................. 69
ĐỀ SỐ 18 .................................................................................................................................. 74
ĐỀ SỐ 19 .................................................................................................................................. 76
ĐỀ SỐ 20 .................................................................................................................................. 78
ĐỀ SỐ 21 .................................................................................................................................. 81
ĐỀ SỐ 22 .................................................................................................................................. 85
ĐỀ SỐ 23 .................................................................................................................................. 89
ĐỀ SỐ 24 .................................................................................................................................. 90
ĐỀ SỐ 25 .................................................................................................................................. 92
ĐỀ SỐ 26 .................................................................................................................................. 95
ĐỀ SỐ 27 .................................................................................................................................. 98
Trang 3
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 1
Trang 4
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 1
Bài 1. (5,0đ)
(* Python không cần phải khai báo biến Var trước như trong Pascal)
(* Giải thích một chút về NNLT Python dành cho quý đọc giả nào mới tiếp xúc
với Python lần đầu tiên: Python hỗ trợ một số cấu trúc điều khiển thông dụng.
Hầu hết các cấu trúc điều khiển đều dựa vào thụt đầu dòng (Tab) để tạo thành
một khối xử lý, chứ không sử dụng Begin … End như ngôn ngữ Pascal hay { … }
trong C/C++. Các câu lệnh cùng một thụt đầu dòng là cùng một cấp độ. Như ở
bài tập trên chúng ta thấy có các thụt đầu dòng, và Python cũng không có dấu
chấm phẩy (;) ở cuối câu lệnh như trong Pascal).
Bài 2. (6,0đ)
Bài 3. (5,0đ)
S = str(input("Nhap vao xau S: "))
# So tu nhien a sau khi xoa cac chu cai trong S
mang_so = ['9','8','7','6','5','4','3','2','1','0']
a = ''
for i in range(0, len(S)):
if S[i] in mang_so: a = a + S[i]
print("a =", a)
# Xoa chu so cua a de co b lon nhat chia het cho 5
a = int(a) # Chuyen chuoi a thanh so nguyen
b = a
c = b % 5
while c != 0:
b = b // 10
c = b % 5
if (b % 5 == 0) and (b > 0): print("b =", b)
else: print("KHONG")
# So T la tong cac so co trong xau S
S = S + " " # Trong cap dau ngoac kep co chua mot dau
cach
mang_luu = [] # Khai bao mot mang co ten la mang_luu
day_con = ''
for i in range(0, len(S)):
if S[i] in mang_so:
day_con = day_con + S[i]
else:
mang_luu.append(day_con) # Them phan tu
day_con vao trong mang_luu
day_con = ''
if (S[i-1] in mang_so) and (S[i] not in mang_so):
mang_luu.append(day_con)
Trang 6
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
T = 0
for i in range(0, len(mang_luu)):
if mang_luu[i] != '':
mang_luu[i] = int(mang_luu[i])
T = T + mang_luu[i]
print("T =", T)
Bài 4. (4,0đ) Mã số
def tinh_tong(s):
tong = 0
while s != 0:
k = s % 10
tong = tong + k
s = s // 10
return tong
a = []
n = int(input("Nhap vao n (n > 0): "))
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while (phan_tu < 1) or (phan_tu >= 10**9):
a.pop(i) # Xoa phan tu co gia tri >= 10**9
tai vi tri i trong mang a
phan_tu = int(input("(0 < a[i] < 10**9), nhap
lai a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Tim ma so theo yeu cau
b = []
for i in range(0, n):
m = tinh_tong(a[i])
while m >= 10:
m = tinh_tong(m)
b.append(m)
print("Ma so:", b)
Trang 7
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Trang 8
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 2
Bài 1: (6,0đ) Viết chương trình nhập số tự nhiên n (n > 2). In ra màn hình:
+ Số chữ số của n; + Tổng các chữ số của n;
+ Tổng các số nguyên tố nhỏ hơn n; + Số nguyên tố (khác n) gần n nhất.
Ví dụ: Với n = 24, thì in kết quả: + 24 co 2 chu so
+ Tong cac chu so cua 24 la: 6
+ Tong cac so nguyen to nho hon 24 la: 100
+ So nguyen to gan 24 nhat la: 23
Bài 2: (6,0đ) Số bậc thang là số tự nhiên có các chữ số đứng sau không nhỏ hơn
chữ số đứng trước (ví dụ: 123; 233). Viết chương trình nhập 2 số tự nhiên a, b (10
< a ≤ b). In ra màn hình:
+ Ước chung lớn nhất của a và b
+ Phân số tối giản a/b.
+ Các số chính phương từ a đến b.
+ Số lượng các Số bậc thang từ a đến b.
Ví dụ: Với a = 32, b = 40 thì in ra kết quả: + UCLN la: 8
+ Phan so toi gian la: 4/5
+ Cac so chinh phuong la: 36
+ Co 7 So bac thang
Bài 3: (4,0đ) Viết chương trình nhập một xâu kí tự S gồm các chữ cái in thường,
chữ số và kí tự trống (dấu cách). In ra màn hình:
+ Tổng các chữ số có trong xâu S;
+ Xâu S1 sau khi xóa các kí tự số trong S;
+ Xâu S2 sau khi xóa các kí tự liên tiếp giống nhau trong S1 chỉ giữ lại 1 kí
tự.
Ví dụ: Với S = 5trrraann thhhhiii45 ttthannh ta64mmm, thì in ra kết quả:
+ Tong cac chu so la: 24
+ S1 = trrraann thhhhiii ttthannh tammm
+ S2 = tran thi thanh tam
Bài 4: (4,0đ) Để dễ dàng theo dõi những người thuộc diện F1 (có tiếp xúc gần với
F0), Ban chỉ đạo phòng chống dịch bệnh Covid-19 bố trí các phòng ở khu cách ly
theo yêu cầu sau:
- Phân các F1 thành n nhóm nhỏ theo thời gian phát hiện, mỗi nhóm không
quá 4 người;
- Bố trí các nhóm vào chung phòng, mỗi phòng không quá 4 người;
- Các F1 trong một nhóm nhỏ phải ở chung một phòng.
Viết chương trình nhập n số tự nhiên nhỏ hơn 5 tương ứng với số người F1
trong n nhóm nhỏ (1 < n < 104). In ra màn hình số phòng ít nhất cần sử dụng để
cách ly theo các yêu cầu trên.
Ví dụ: Với n = 6 và nhập các số: 1 4 2 3 2 3
thì in kết quả: So phong it nhat la: 4
Trang 9
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 2
Bài 1: (6,0đ)
# Viet ham kiem tra n co phai la so nguyen to hay khong
def ktsnt(n):
nguyento = 1
if n < 2:
nguyento = 0
return nguyento
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
# Chuong trinh chinh
n = int(input("Nhap n (n > 2): "))
while n <= 2:
n = int(input("Nhap lai n (n > 2): "))
# So chu so cua n va tong cac chu so cua n
m = n
dem = 0
tong = 0
while m != 0:
k = m % 10
dem = dem + 1
tong = tong + k
m = m // 10
print(n, "co", dem, "chu so")
print("Tong cac chu so cua", n, "la:", tong)
# Tong cac so nguyen to nho hon n
tong = 0
for i in range(2, n):
if ktsnt(i) == 1: tong = tong + i
print("Tong cac so nguyen to nho hon", n, "la:", tong)
# So nguyen to (khac n) gan n nhat
i = n - 1
while ktsnt(i) != 1:
ktsnt(i)
i = i - 1
print("So nguyen to gan", n, "nhat la:", i)
Bài 2: (6,0đ)
a = int(input("Nhap a (a > 10): "))
while a <= 10:
a = int(input("Nhap lai a (a > 10): "))
b = int(input("Nhap b (b >= a): "))
while b < a:
b = int(input("Nhap lai b (b >= a): "))
Trang 10
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Trang 11
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Bài 3: (4,0đ)
S = str(input("Nhap vao xau S: "))
# Tinh tong cac chu so
mang_so = ['9','8','7','6','5','4','3','2','1','0']
tong = 0
for i in range(0, len(S)):
if S[i] in mang_so:
k = S[i]
k = int(k)
tong = tong + k
print("Tong cac chu so la:", tong)
# Xau S1 sau khi xoa cac ki tu so trong S
S1 = ''
for i in range(0, len(S)):
if S[i] not in mang_so:
S1 = S1 + S[i]
print("S1 =",S1)
# Xau S2 sau khi xoa ki tu lien tiep giong nhau trong
S1 chi giu lai 1 ki tu
S2 = ''
for i in range(0, len(S1)):
if len(S2) == 0:
S2 = S2 + S1[i]
k = S1[i]
if S1[i] == k:
continue
else:
S2 = S2 + S1[i]
k = S1[i]
print("S2 =",S2)
Bài 4: (4,0đ)
a = []
n = int(input("Nhap vao n (1 < n < 10**4): "))
while (n <= 1) or (n >= 10**4):
n = int(input("Nhap lai n (1 < n < 10**4): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu > 4:
a.pop(i) # Xoa phan tu co gia tri > 4 tai vi
tri i trong mang a
phan_tu = int(input("Nhap lai a[" + str(i +
1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
Trang 12
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
# Tim so phong it nhat
a1 = []
a2 = []
a3 = []
a4 = []
for i in range(0, n):
if a[i] == 1:
a1.append(a[i])
if a[i] == 2:
a2.append(a[i])
if a[i] == 3:
a3.append(a[i])
if a[i] == 4:
a4.append(a[i])
tong1 = 0
tong2 = 0
tong3 = 0
tong4 = 0
for i in range(0, len(a1)):
tong1 = tong1 + a1[i]
for i in range(0, len(a2)):
tong2 = tong2 + a2[i]
for i in range(0, len(a3)):
tong3 = tong3 + a3[i]
for i in range(0, len(a4)):
tong4 = tong4 + a4[i]
dem = tong4 // 4
dem = dem + (tong1 // 4)
tong1 = tong1 % 4
tong2 = tong2 + tong1
dem = dem + (tong2 // 4)
tong2 = tong2 % 4
if (tong3 == 0) and (tong2 > 0):
dem = dem + 1
if tong3 > 0:
if (tong2 == 0) or (tong2 == 1):
dem = dem + len(a3)
elif (tong2 > 1) and ((tong1 < len(a3)) or (tong1
== len(a3))) and (tong1 > 1):
dem = dem + len(a3)
elif tong2 > 1:
dem = dem + len(a3) + 1
print("So phong it nhat la:", dem)
Trang 13
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 3
Trang 14
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 3
Bài 1: (5đ) Số tự nhiên.
Trang 15
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
mang_luu = []
a = int(input("Nhap vao a (0 < a < 10**9): "))
while (a <= 0) or (a >= 10**9):
a = int(input("Nhap lai a (0 < a < 10**9): "))
mang_luu.append(a) # Chuyen so a vao trong mang_luu
b = int(input("Nhap vao b (0 < b < 10**9): "))
while (b <= 0) or (b >= 10**9):
b = int(input("Nhap lai b (0 < b < 10**9): "))
mang_luu.append(b) # Chuyen so b vao trong mang_luu
c = int(input("Nhap vao c (0 < c < 10**9): "))
while (c <= 0) or (c >= 10**9):
c = int(input("Nhap lai c (0 < c < 10**9): "))
mang_luu.append(c) # Chuyen so c vao trong mang_luu
k = int(input("Nhap vao k (0 < k < 10**4): "))
while (k <= 0) or (k >= 10**4):
k = int(input("Nhap lai k (0 < k < 10**4): "))
# So nho nhat trong 3 so da nhap
# Sap xep mang_luu theo thu tu giam dan
for i in range(0, len(mang_luu) - 1):
for j in range(i + 1, len(mang_luu)):
if mang_luu[i] < mang_luu[j]:
tam = mang_luu[i]
mang_luu[i] = mang_luu[j]
mang_luu[j] = tam
print("So nho nhat la:", mang_luu[2])
# So du cua phep chia P cho k (k nguyen duong nhap tu ban
phim, k < 10**4)
P = mang_luu[0] * mang_luu[1]
print("So du la:", P % k)
a = []
n = int(input("Nhap vao n (1 < n < 20): "))
while (n <= 1) or (n >= 20):
n = int(input("Nhap lai n (1 < n < 20): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
k = int(input("Nhap k (k > 0): "))
while k <= 0:
k = int(input("Nhap lai k (k > 0): "))
# Tong so met go cat bo di va do dai h theo yeu cau
min = a[0]
for i in range(1, len(a)):
if a[i] < min: min = a[i]
tong = 0
for i in range(0, len(a)):
if a[i] > min: tong = tong + a[i] - min
print("Tong so met go cat bo la:", tong)
print("Do dai h lon nhat la:", 2*k + 1)
Trang 17
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 4
Trang 18
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 4
Trang 19
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Bài 2: (5đ) Dãy số.
a = []
n = int(input("Nhap vao n (n > 1): "))
while (n <= 1):
n = int(input("Nhap lai n (n > 1): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu <= 0:
a.pop(i) # Xoa phan tu co gia tri <= 0 tai vi tri
i trong mang a
phan_tu = int(input("(a[i] > 0), nhap lai a[" +
str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Sap xep mang a theo thu tu tang dan
for i in range(0, len(a) - 1):
for j in range(i + 1, len(a)):
if a[i] > a[j]:
tam = a[i]
a[i] = a[j]
a[j] = tam
print("Day tang dan la:", a)
# Day so da cho duoc sap xep giam dan sau khi thuc hien
lan luot tang 5 doi voi so le va giam 3 doi voi so chan
for i in range(0, n):
if (a[i] % 2 == 0): a[i] = a[i] - 3
else: a[i] = a[i] + 5
# Sap xep lai mang theo thu tu giam dan
for i in range(0, len(a) - 1):
for j in range(i + 1, len(a)):
if a[i] < a[j]:
tam = a[i]
a[i] = a[j]
a[j] = tam
print("Day giam dan la:", a)
Trang 21
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 5
Trang 22
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 5
Trang 23
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
# So con lai lon nhat chia het cho 5 khi xoa di mot
so chu so ben phai cua n
m = n % 5
while m != 0:
n = n // 10
m = n % 5
if (n % 5 == 0) and (n > 0): print("So lon nhat chia
het cho 5 la:", n)
else: print("KHONG")
import math
AB = int(input("Nhap vao AB (AB > 0): "))
while AB <= 0:
AB = int(input("Nhap lai AB (AB > 0): "))
AH = int(input("Nhap vao AH (AB > AH > 0): "))
while (AH <= 0) or (AH >= AB):
AH = int(input("Nhap lai AH (AB > AH > 0): "))
# Tinh do dai canh AC
tu = AB**2 * AH**2
mau = AB**2 - AH**2
AC = math.sqrt(tu / mau)
# Tinh do dai canh BC
BC = math.sqrt(AB**2 + AC**2)
# Tinh do dai canh BH
BH = AB**2 / BC
# Tinh do dai canh CH
CH = AC**2 / BC
print("BH = %.2f" %BH)
print("CH = %.2f" %CH)
a = []
n = int(input("Nhap vao n (n > 1): "))
while (n <= 1):
n = int(input("Nhap lai n (n > 1): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
Trang 24
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
while (phan_tu < 1) or (phan_tu >= 10**9):
a.pop(i) # Xoa phan tu co gia tri < 1 hoac >=
10**9 tai vi tri i trong mang a
phan_tu = int(input("(1 < a[i] < 10**9), nhap
lai a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
k = int(input("Nhap vao k (0 < k < n): "))
while (k <= 0) or (k >= n):
k = int(input("Nhap lai k (0 < k < n): "))
# Day so duoc sap xep tang dan
for i in range(0, len(a) - 1):
for j in range(i + 1, len(a)):
if a[i] > a[j]:
tam = a[i]
a[i] = a[j]
a[j] = tam
print("Day tang dan la:", a)
# Cac so trong day xuat hien k lan tro len theo thu
tu tang dan
b = []
kiemtra = 0
i = 0
while i < len(a):
dem = 1
for j in range(i + 1, len(a)):
if a[j] == a[i]: dem = dem + 1
if dem >= k:
kiemtra = kiemtra + 1
b.append(a[i])
i = i + dem
if kiemtra > 0: print("Cac so xuat hien", k, "lan tro
len la:", b)
else: print("KHONG")
Trang 25
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 6
Trang 26
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 6
Trang 27
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
a = []
n = int(input("Nhap vao n (0 < n < 10**2): "))
while (n <= 0) or (n >= 10**2):
n = int(input("Nhap lai n (0 < n < 10**2): "))
Trang 28
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while (phan_tu < 1) or (phan_tu >= 10**9):
a.pop(i) # Xoa phan tu co gia tri < 1 hoac >=
10**9 tai vi tri i trong mang a
phan_tu = int(input("(1 < a[i] < 10**9), nhap
lai a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Tong cac so da nhap
tong = 0
for i in range(0, n):
tong = tong + a[i]
print("Tong la:", tong)
# Cac day con tim duoc
max = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
kiemtra = 0
so_doan_con_nhieu_nhat = tong // max
while so_doan_con_nhieu_nhat > 0:
tong_moi_doan_con = 0
for i in range(0, n):
tong_moi_doan_con = tong_moi_doan_con + a[i]
if tong_moi_doan_con == tong /
so_doan_con_nhieu_nhat:
kiemtra = kiemtra + 1
break
if kiemtra > 0: break
else: so_doan_con_nhieu_nhat =
so_doan_con_nhieu_nhat - 1
# In ra cac day con theo yeu cau
print("Cac day con la:", end=' ')
t = 0
for i in range(0, n):
t = t + a[i]
if t <= tong_moi_doan_con:
print(a[i], end=' ')
else:
print("*", end=' ')
print(a[i], end=' ')
t = a[i]
Trang 29
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 7
Trang 30
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 7
a = []
n = int(input("Nhap vao n (n > 0): "))
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Tong cac so nguyen chan vua nhap
tongchan = 0
for i in range(0, n):
if a[i] % 2 == 0: tongchan = tongchan + a[i]
print("Tong cac so nguyen chan la:", tongchan)
# So co gia tri lon nhat, nho nhat va vi tri cua no trong
day
max = a[0]
min = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
if a[i] < min: min = a[i]
Trang 31
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
for i in range(0, n):
if a[i] == max: print("So lon nhat la", max, ", o vi
tri thu", i + 1)
for i in range(0, n):
if a[i] == min: print("So nho nhat la", min, ", o vi
tri thu", i + 1)
# Cho biet day vua nhap co phai la day tang khong?
dem = 0
for i in range(0, n - 1):
j = i + 1
if a[j] >= a[i]: dem = dem + 1
if dem == (n - 1): print("DAY TANG")
else: print("DAY KHONG TANG")
Bài 3: (5đ) Xâu kí tự.
a = []
n = int(input("Nhap vao n (0 < n < 10**2): "))
while (n < 1) or (n >= 10**2):
n = int(input("Nhap lai n (0 < n < 10**2): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu < 1:
a.pop(i) # Xoa phan tu co gia tri < 1 tai vi
tri i trong mang a
phan_tu = int(input("Nhap lai a[" + str(i +
1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Cac so nguyen to cua day
# Viet ham kiem tra n co phai la so nguyen to hay
khong
def ktsnt(n):
nguyento = 1
if n < 2:
nguyento = 0
return nguyento
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
Trang 33
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Trang 34
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 8
BÀI GIẢI ĐỀ SỐ 8
a = []
n = int(input("Nhap vao n (n > 0): "))
while n < 1:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Tong cac so trong day
tong = 0
for i in range(0, n): tong = tong + a[i]
print("Tong cac so trong day la:", tong)
# Day so duoc sap xep tang dan
for i in range(0, len(a) - 1):
for j in range(i + 1, len(a)):
if a[i] > a[j]:
tam = a[i]
a[i] = a[j]
a[j] = tam
print("Sap xep tang dan:", a)
Trang 36
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
# So nguyen co gia tri tuyet doi lon nhat trong day
print("So co GTTD lon nhat la:", end=' ')
max = a[0]
min = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
if a[i] < min: min = a[i]
if abs(min) > abs(max): print(min)
else: print(max)
Trang 38
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 9
Trang 39
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 9
Bài 1: (5đ) Tính tổng.
a = []
n = int(input("Nhap vao n (n > 0): "))
while n < 1:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] =
"))
a.append(phan_tu)
while phan_tu == 0:
a.pop(i) # Xoa phan tu co gia tri == 0 tai
vi tri i trong mang a
phan_tu = int(input("a[i] != 0, nhap lai
a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Gia tri lon nhat cua day
max = a[0]
for i in range(0, n):
if a[i] > max: max = a[i]
print("Gia tri lon nhat la:", max)
Trang 40
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Trang 41
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
def ktsnt(n):
nguyento = 1
if n < 2:
nguyento = 0
return nguyento
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
m = n // 10
while (ktsnt(m) != 1) and (m != 0): m = m // 10
if m == 0: print("KHONG")
else: print("So nguyen to la:", m)
Trang 42
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 10
Trang 43
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 10
Bài 1: (5đ) Tam giác.
import math
a = int(input("Nhap vao a (a > 0): "))
while a <= 0:
a = int(input("Nhap lai a (a > 0): "))
b = int(input("Nhap vao b (b > 0): "))
while b <= 0:
b = int(input("Nhap lai b (b > 0): "))
c = int(input("Nhap vao c (c > 0): "))
while c <= 0:
c = int(input("Nhap lai c (c > 0): "))
if (a + b > c) and (b + c > a) and (c + a > b):
cv = a + b + c
p = cv / 2
pa = p - a
pb = p - b
pc = p - c
bt = p * pa * pb * pc
dt = math.sqrt(bt)
print("Dien tich cua tam giac la: %.2f" %dt)
if (a**2 + b**2 == c**2) or (b**2 + c**2 == a**2) or
(c**2 + a**2 == b**2):
print("Day la mot tam giac vuong")
elif (a**2 + b**2 < c**2) or (b**2 + c**2 < a**2) or
(c**2 + a**2 < b**2):
print("Day la mot tam giac tu")
else: print("Day la mot tam giac nhon")
else: print(a,";", b,";", c, "khong la 3 canh cua tam
giac")
Bài 2: (5đ) Ước số.
Trang 44
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
# So khong vuot qua n co nhieu uoc nguyen duong nhat
# Viet ham dem so luong uoc cua mot so nguyen n
def dem_uoc(n):
dem = 0
for i in range(1, n + 1):
if n % i == 0: dem = dem + 1
return dem
# Tim so khong vuot qua n co nhieu uoc nhat
max = 1
for i in range(1, n + 1):
if dem_uoc(i) > max:
max = dem_uoc(i)
socantim = i
print("So co nhieu uoc nhat la", socantim)
a = []
n = int(input("Nhap vao n (n > 2): "))
while (n <= 2):
n = int(input("Nhap lai n (n > 2): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# So nguyen duong nho nhat
max = a[0]
min = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
if a[i] < min: min = a[i]
min_duong = max
for i in range(0, n):
if (a[i] > 0) and (a[i] < min_duong): min_duong = a[i]
if min_duong <= 0:
print("So nguyen duong nho nhat la KHONG CO")
else: print("So nguyen duong nho nhat la", min_duong)
# So nguyen am lon nhat
max_am = min
for i in range(0, n):
if (a[i] < 0) and (a[i] > max_am): max_am = a[i]
if max_am >= 0:
print("So nguyen am lon nhat la KHONG CO")
else: print("So nguyen am lon nhat la", max_am)
# Cac so xuat hien hon mot lan va so lan xuat hien cua so
do
# Xoa cac phan tu trung nhau trong mang a va chuyen vao
mang b
Trang 45
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
b = []
for i in range(0, n):
if a[i] not in b:
b.append(a[i])
print(b)
# Dem xem cac phan tu co trong b[i] xuat hien bao
nhieu lan trong mang a
for i in range(0, len(b)):
if a.count(b[i]) > 1:
print("So", b[i], "xuat hien", a.count(b[i]),
end=" lan, ")
a = []
n = int(input("Nhap vao n (2 < n < 100): "))
while (n <= 2) or (n >= 100):
n = int(input("Nhap lai n (2 < n < 100): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu <= 0:
a.pop(i) # Xoa phan tu co gia tri <= 0 tai vi
tri i trong mang a
phan_tu = int(input("a[i] > 0, nhap lai a[" +
str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Cac so nguyen to cua day
# Viet ham kiem tra n co phai la so nguyen to hay
khong
def ktsnt(n):
nguyento = 1
if n < 2:
nguyento = 0
return nguyento
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
kiemtra = 0
for i in range(0, n):
if ktsnt(a[i]) == 1: kiemtra = kiemtra + 1
Trang 46
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
if kiemtra == 0:
print("Cac so nguyen to cua day la KHONG CO")
print("Day cac so nguyen to lien tiep co so luong
nhieu nhat la KHONG CO")
else:
print("Cac so nguyen to cua day la:", end=' ')
for i in range(0, n):
if ktsnt(a[i]) == 1: print(a[i], end=' ')
# Day cac so nguyen to lien tiep co so luong nhieu
nhat
print('')
a.append(4) # Gan vao cuoi mang a mot phan tu = 4
khong phai la so nguyen to de lam dieu kien dung
dem = 0
max = 0
for i in range(0, n + 1):
if ktsnt(a[i]) == 0:
if dem > max: max = dem
dem = 0
else: dem = dem + 1
print("Max =", max) # Khong can lenh nay - Muc dich in
ra la chi de kiem tra
dem = 0
tong = 0
tong_max = 0
for i in range(0, n + 1):
if ktsnt(a[i]) == 0: # Neu a[i] KHONG PHAI la so nguyen to
if dem == max:
if tong > tong_max:
tong_max = tong
vtc = i - 1
dem = 0
tong = 0
else:
dem = dem + 1
tong = tong + a[i]
print("Vi tri cuoi =", vtc + 1) # Khong can lenh nay -
Muc dich in ra la chi de kiem tra
print("Tong Max =", tong_max) # Khong can lenh nay -
Muc dich in ra la chi de kiem tra
vtd = vtc - max + 1
print("Vi tri dau =", vtd + 1) # Khong can lenh nay -
Muc dich in ra la chi de kiem tra
print("Day nguyen to lon nhat co", max, end=' phan tu:
')
for i in range(vtd, vtc + 1): print(a[i], end=' ')
Trang 47
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 11
Trang 48
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 11
Bài 1: (6đ) Dãy số.
a = []
n = int(input("Nhap vao n (n > 0): "))
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Cac so chinh phuong cua day va so luong cua chung
# Viet ham kiem tra n co phai la so chinh phuong hay khong
def ktcp(n):
chinhphuong = 0
for i in range(1, n + 1):
if i**2 == n:
chinhphuong = 1
return chinhphuong
dem = 0
for i in range(0, n):
if ktcp(a[i]) == 1: dem = dem + 1
print("Co", dem, end=' so chinh phuong: ')
for i in range(0, n):
if ktcp(a[i]) == 1: print(a[i], end=' ')
print('')
# Cac so cua day co gia tri lon hon trung binh cong cua day
tren
tong = 0
for i in range(0, n): tong = tong + a[i]
tbc = tong / n
print("Cac so lon hon TBC:", end=' ')
for i in range(0, n):
if a[i] > tbc: print(a[i], end=' ')
print('')
# Cac so nguyen x khong thuoc day tren sao cho a < x < b
# Sap xep mang a theo thu tu tang dan
for i in range(0, len(a) - 1):
for j in range(i + 1, len(a)):
if a[i] > a[j]:
tam = a[i]
a[i] = a[j]
a[j] = tam
print(a)
print("Cac so khong thuoc day", end=': ')
for i in range(0, n - 1):
j = i + 1
for so in range(a[i], a[j]):
if (so > a[i]) and (so < a[j]): print(so, end=' ')
Bài 2: (4đ) Khoảng cách.
a = []
n = int(input("Nhap vao n (n > 0): "))
Trang 49
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Hai so co khoang cach lon nhat va khoang cach cua no
max = a[0]
min = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
if a[i] < min: min = a[i]
print("Hai so", max, "va", min, "co khoang cach lon nhat la:",
max - min)
# Hai so lien tiep trong day co khoang cach be nhat va khoang
cach cua no
min = max - min
for i in range(0, n - 1):
j = i + 1
if abs(a[i] - a[j]) < min: min = abs(a[i] - a[j])
for i in range(0, n - 1):
j = i + 1
if abs(a[i] - a[j]) == min:
print("Hai so", a[i], "va", a[j], "co khoang cach be
nhat la:", min)
break
ĐỀ SỐ 12
Trang 52
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 12
Trang 53
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
# So tu nhien k nho nhat sao cho n - k la so nguyen to
# Viet ham kiem tra n co phai la so nguyen to hay khong
def ktsnt(n):
nguyento = 1
if n < 2:
nguyento = 0
return nguyento
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
k = 0
while ktsnt(n - k) == 0: k = k + 1
print("k =", k)
Bài 3: (6đ) Độ bền.
n = int(input("Nhap n (0 <= n <= 10**3): "))
while (n < 0) or (n > 10**3):
n = int(input("Nhap lai n (0 <= n <= 10**3): "))
# Do ben cua n
# Viet ham tinh tich cac chu so cua n
def tinh_tich(n):
tich = 1
while n > 0:
tich = tich * (n % 10)
n = n // 10
return tich
# Viet ham tinh do ben cua so n
def doben(n):
if n < 10: dem = 0
else:
dem = 1
k = n
while k >= 10:
tinh_tich(k)
k = tinh_tich(k)
if k > 10: dem = dem + 1
return dem
# Xuat ket qua
print("Doben(",n,") =", doben(n))
# So be hon n co do ben lon nhat
m = n
max = 0
m = m - 1
if (m >= 0) and (m < 10): so = m
elif m < 0: so = 0
else:
while m != 0:
if doben(m) > max:
max = doben(m)
so = m
m = m - 1
print("So be hon", n, "co do ben lon nhat la:", so)
Trang 54
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 13
Trang 55
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 13
Bài 1: (5đ) Dãy số.
a = []
n = int(input("Nhap vao n (n > 0): "))
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# So co gia tri tuyet doi lon nhat
print("So co GTTD lon nhat:", end=' ')
max = a[0]
min = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
if a[i] < min: min = a[i]
if abs(min) > abs(max): print(min)
else: print(max)
# So nguyen am lon nhat
max_am = min
for i in range(0, n):
if (a[i] < 0) and (a[i] > max_am): max_am = a[i]
if max_am >= 0:
print("So nguyen am lon nhat la KHONG CO")
else: print("So nguyen am lon nhat la:", max_am)
# So nguyen duong nho nhat
min_duong = max
for i in range(0, n):
if (a[i] > 0) and (a[i] < min_duong): min_duong = a[i]
if min_duong <= 0:
print("So nguyen duong nho nhat la KHONG CO")
else: print("So nguyen duong nho nhat la:", min_duong)
# Cac so chinh phuong cua day
# Viet ham kiem tra n co phai la so chinh phuong hay khong
def ktcp(n):
chinhphuong = 0
for i in range(1, n + 1):
if i**2 == n:
chinhphuong = 1
return chinhphuong
print("Cac so chinh phuong la:", end = ' ')
for i in range(0, n):
if ktcp(a[i]) == 1: print(a[i], end = ' ')
Trang 56
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
a = []
n = int(input("Nhap vao n (n > 0): "))
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while (phan_tu < 2) or (phan_tu % 2 != 0):
a.pop(i) # Xoa phan tu co gia tri le tai vi tri i
trong mang a
phan_tu = int(input("(a[i] > 2 va a[i] la so
chan), nhap lai a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Viet ham kiem tra n co phai la so nguyen to hay khong
def ktsnt(n):
nguyento = 1
if n < 2:
nguyento = 0
return nguyento
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
print("Cac cap so nguyen to can tim la:", end=' ')
for i in range(0, n):
k1 = 1
k2 = a[i] - 1
while k1 <= k2:
if (ktsnt(k1) == 1) and (ktsnt(k2) == 1):
n1 = k1
n2 = k2
k1 = k1 + 1
k2 = k2 - 1
print("(",n1,";",n2,")", end=' ')
ĐỀ SỐ 14
Trang 59
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 14
a = []
n = int(input("Nhap vao n (n > 0): "))
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Tong cac so chan va tong cac so le cua day
tc = 0
tl = 0
for i in range(0, n):
if a[i] % 2 == 0: tc = tc + a[i]
else: tl = tl + a[i]
print("Tong cac so chan la:", tc)
print("Tong cac so le la:", tl)
# So lon nhat va so be nhat cua day
max = a[0]
min = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
if a[i] < min: min = a[i]
print("So lon nhat la:", max)
print("So be nhat la:", min)
Trang 60
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Bài 3: (5đ) Số nguyên tố gần nhất.
Trang 61
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 15
Trang 62
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 15
while T <= n:
x = x + 1
T = T + x**2
if T == n: print("S = %.4f" %S,', x =', x)
else: print("S = %.4f" %S,', x =', x - 1)
a = []
n = int(input("Nhap vao n (n > 0): "))
while (n <= 0):
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu <= 0:
a.pop(i) # Xoa phan tu co gia tri <= 0 tai vi
tri i trong mang a
phan_tu = int(input("(a[i] > 0), nhap lai a["
+ str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Sap xep mang a theo thu tu giam dan
for i in range(0, len(a) - 1):
for j in range(i + 1, len(a)):
if a[i] < a[j]:
tam = a[i]
a[i] = a[j]
a[j] = tam
print("Day duoc sap xep giam dan la:", a)
# In ra man hinh cac day con nguyen to co nhieu phan
tu nhat
# Viet ham kiem tra n co phai la so nguyen to hay
khong
Trang 64
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
def ktsnt(n):
nguyento = 1
if n < 2:
nguyento = 0
return nguyento
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
kiemtra = 0
for i in range(0, n):
if ktsnt(a[i]) == 1: kiemtra = kiemtra + 1
if kiemtra == 0:
print("Day con nguyen to lon nhat: KHONG CO")
else:
# Tim do dai cua day con dai nhat
a.append(4) # Gan vao cuoi mang a mot phan tu =4
khong phai la so nguyen to de lam dieu kien dung
dem = 0
max = 0
for i in range(0, n + 1):
if ktsnt(a[i]) == 0: # Neu a[i] KHONG PHAI la
so nguyen to
if dem > max: max = dem
dem = 0
else:
dem = dem + 1
# Tim Vi tri cuoi (vtc) va Vi tri dau (vtd)
dem = 0
for i in range(0, n + 1):
if ktsnt(a[i]) == 0:
if dem == max:
vtc = i
break
dem = 0
else:
dem = dem + 1
vtd = vtc - max
print("Day con nguyen to lon nhat:", end=' ')
for i in range(vtd, vtc): print(a[i], end=' ')
Trang 65
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 16
Trang 66
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 16
Bài 1: (5đ) Số lớn nhất, nhỏ nhất.
a = []
n = int(input("Nhap vao n (n > 0): "))
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Tong cac so nguyen am, tong cac so nguyen duong
t1 = 0
t2 = 0
for i in range(0, n):
if a[i] > 0: t1 = t1 + a[i]
else: t2 = t2 + a[i]
print("Tong cac so nguyen duong la:", t1)
print("Tong cac so nguyen am la:", t2)
# So lon nhat, so nho nhat va vi tri cua no trong day
max = a[0]
min = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
if a[i] < min: min = a[i]
print("So lon nhat la:", max, "o vi tri thu", end=' ')
for i in range(0, n):
if a[i] == max: print(i + 1, end=' ')
print('')
print("So nho nhat la:", min, "o vi tri thu", end=' ')
for i in range(0, n):
if a[i] == min: print(i + 1, end=' ')
Bài 2: (5đ) Tính tổng.
ĐỀ SỐ 17
BÀI GIẢI ĐỀ SỐ 17
Bài 1: (5đ) ƯC - BC.
m = int(input("Nhap m (m >= 0): "))
while m < 0:
m = int(input("Nhap lai m (m > 0): "))
n = int(input("Nhap n (n >= 0): "))
while n < 0:
n = int(input("Nhap lai n (n > 0): "))
# Tat ca cac uoc chung lon hon 0 cua m va n
a = []
min = m
if n < m: min = n
for i in range(1, min + 1):
if (m % i == 0) and (n % i == 0): a.append(i)
print("UC(",m,", ",n,") = ", a)
# Tong cac binh phuong cua cac uoc chung do
t = 0
for i in range(0, len(a)): t = t + a[i]**2
print("Tong binh phuong cac UC la:", t)
# BCNN cua m va n
x = m
y = n
while x != y:
if x > y: x = x - y
else: y = y - x
ucln = x
print("BCNN(", m, ",", n, ") = ", m * n // ucln)
Bài 2: (5đ) Số nhị phân.
n = int(input("Nhap n (n >= 0): "))
while n < 0:
n = int(input("Nhap lai n (n > 0): "))
# Tong cac chu so cua n
s = str(n) # Doi so n ra chuoi va gan vao chuoi s
tong = 0
for i in range(0, len(s)): tong = tong + int(s[i])
print("Tong cac chu so la:", tong)
# Doi so n ra he nhi phan
xautam = ''
while n > 0:
xautam = xautam + str(n % 2)
n = n // 2
nhiphan = ''
i = len(xautam) - 1
while i >= 0:
nhiphan = nhiphan + xautam[i]
i = i - 1
print("So nhi phan la:", nhiphan)
Trang 70
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Bài 3: (5đ) Sắp xếp.
a = []
n = int(input("Nhap vao n (n > 1): "))
while n <= 1:
n = int(input("Nhap lai n (n > 1): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu < 0:
a.pop(i) # Xoa phan tu co gia tri < 0 tai vi
tri i trong mang a
phan_tu = int(input("(a[i] >= 0), nhap lai
a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Gia tri lon nhat, gia tri nho nhat
max = a[0]
min = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
if a[i] < min: min = a[i]
print("Gia tri lon nhat la:", max)
print("Gia tri nho nhat la:", min)
# Sap xep day theo yeu cau
chan = []
le = []
for i in range(0, n):
if a[i] % 2 == 0: chan.append(a[i])
else: le.append(a[i])
# Sap xep mang chan theo tu tu tang dan
for i in range(0, len(chan) - 1):
for j in range(i + 1, len(chan)):
if chan[i] > chan[j]:
tam = chan[i]
chan[i] = chan[j]
chan[j] = tam
# Sap xep mang le theo tu tu giam dan
for i in range(0, len(le) - 1):
for j in range(i + 1, len(le)):
if le[i] < le[j]:
tam = le[i]
le[i] = le[j]
le[j] = tam
print("Day da sap xep la:", chan + le)
Trang 71
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
a = []
n = int(input("Nhap vao n (n > 1): "))
while n <= 1:
n = int(input("Nhap lai n (n > 1): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu < 0:
a.pop(i) # Xoa phan tu co gia tri < 0 tai vi
tri i trong mang a
phan_tu = int(input("a[i] >= 0, nhap lai a["
+ str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Cac so nguyen to cua day
# Viet ham kiem tra n co phai la so nguyen to hay
khong
def ktsnt(n):
nguyento = 1
if n < 2:
nguyento = 0
return nguyento
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
kiemtra = 0
for i in range(0, n):
if ktsnt(a[i]) == 1: kiemtra = kiemtra + 1
if kiemtra == 0:
print("Day cac so nguyen to lien tiep co so luong
nhieu nhat la KHONG CO")
else:
# Day cac so nguyen to lien tiep co so luong
nhieu nhat
a.append(4) # Gan vao cuoi mang a mot phan tu = 4
khong phai la so nguyen to de lam dieu kien dung
dem = 0
max = 0
Trang 72
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Trang 73
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 18
BÀI GIẢI ĐỀ SỐ 18
ĐỀ SỐ 19
Bài 1 (3,5 đ):
Viết chương trình nhập số nguyên n từ bàn phím (n < 100), in ra màn hình tổng
các ước số và số lượng ước của n.
Bài 2 (3,5 đ):
Viết chương trình nhập n số nguyên từ bàn phím (n < 1000), in ra màn hình tổng
các số nguyên lẻ và dãy số trên sau khi được sắp xếp tăng dần
Bài 3 (3 đ):
Viết chương trình nhập số nguyên n từ bàn phím (n < 10000), in ra màn hình
bảng phân tích số n ra thừa số nguyên tố dưới dạng bảng phân tích và tích các thừa số
nguyên tố.
Ví dụ: Với n = 100 thì in ra
100 | 2
50 | 2
25 | 5
5|5
1|
và 100 = 2.2.5.5
BÀI GIẢI ĐỀ SỐ 19
Bài 1 (3,5 đ):
n = int(input("Nhap vao n (0 < n < 100): "))
while (n <= 0) or (n >= 100):
n = int(input("Nhap lai n (0 < n < 100): "))
tong = 0
dem = 0
for i in range(1, n + 1):
if n % i == 0:
tong = tong + i
dem = dem + 1
print("Tong cac uoc so la:", tong)
print("So luong uoc cua n la:", dem)
Bài 2 (3,5 đ):
a = []
n = int(input("Nhap vao n (0 < n < 1000): "))
while (n <= 0) or (n >= 100):
n = int(input("Nhap lai n (0 < n < 1000): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Tong cac so nguyen le
tong = 0
for i in range(0, n):
if a[i] % 2 != 0: tong = tong + a[i]
print("Tong cac so nguyen le:", tong)
Trang 76
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Bài 3 (3 đ):
Trang 77
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 20
Bài 1: (2,0đ)
a) Viết chương trình nhập vào 2 số nguyên a, b.
b) In ra màn hình:
+ Các ước số chung của a và b.
+ Ước số chung lớn nhất của a và b.
Bài 2: (4,0đ)
Cho số tự nhiên N (0 < N <= 100). Hãy viết chương trình thực hiện:
a) Nhập số N, sau đó nhập N số nguyên từ bàn phím. thứ tự của các số gọi
là chỉ số.
b) Trong dãy trên có bao nhiêu số chẵn ?
c) Số lớn nhất và chỉ số của nó trong dãy số ?
d) In ra màn tất cả các số trong dãy nhưng theo thứ tự tăng dần
Bài 3: (2đ)
Viết chương trình để giải bài toán sau :
Trăm trâu trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Trâu già ba con một bó.
Hỏi có bao nhiêu con mỗi loại?
Bài 4: (2đ)
Viết chương trình nhập vào Họ và tên của một học sinh, không bắt buộc nhập
chữ hoa hay chữ thường ( Ví dụ : nguyEn VaN bINh). In ra màn hình:
a) Họ và tên bằng chữ in hoa ( Ví dụ : NGUYEN VAN BINH)
b) Họ và tên có ký đầu của mỗi tiếng bằng chữ in hoa, các ký tự còn lại là
chữ thường ( ví dụ: Nguyen Van Binh )
Trang 78
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 20
Bài 1: (2,0đ)
a = int(input("Nhap a (a > 0): "))
while a <= 0:
a = int(input("Nhap lai a (a > 0): "))
b = int(input("Nhap b (b > 0): "))
while b <= 0:
b = int(input("Nhap lai b (b > 0): "))
# Cac uoc so chung cua a va b
c = []
min = a
if b < a: min = b
for i in range(1, min + 1):
if (a % i == 0) and (b % i == 0): c.append(i)
print("UC(",a,", ",b,") = ", c)
# Uoc so chung lon nhat cua a va b
x = a
y = b
while x != y:
if x > y: x = x - y
else: y = y - x
ucln = x
print("UCLN(", a, ",", b, ") = ", ucln)
Bài 2: (4,0đ)
a = []
n = int(input("Nhap vao n (0 < n <= 100): "))
while (n < 0) or (n > 100):
n = int(input("Nhap lai n (0 < n <= 100): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Trong day tren co bao nhieu so chan
dem = 0
for i in range(0, n):
if a[i] % 2 == 0: dem = dem + 1
print("So luong so chan trong day tren la:", dem)
# So lon nhat va chi so cua no trong day so
max = a[0]
for i in range(1, n):
if a[i] > max: max = a[i]
print("So lon nhat la", max, end=', o vi tri thu: ')
for i in range(0, n):
if a[i] == max: print(i + 1, end=' ')
print('')
Trang 79
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Bài 3: (2đ)
Bài 4: (2đ)
Trang 80
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 21
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
Trang 81
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 21
a = []
n = int(input("Nhap vao n (0 < n < 20): "))
while (n < 1) or (n >= 20):
n = int(input("Nhap lai n (0 < n < 20): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu < 0:
a.pop(i) # Xoa phan tu co gia tri < 0 tai vi tri i
trong mang a
phan_tu = int(input("Nhap lai a[" + str(i + 1) +
"] = "))
a.append(phan_tu)
print(a) # Xuat mang a
Trang 82
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Trang 84
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 22
Trang 85
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 22
Bài 2: (1,5đ)
Trang 86
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Trang 87
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Trang 88
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 23
Bài 1: (2,5đ) Số chữ số.
Viết chương trình nhập số nguyên dương n từ bàn phím, in ra màn hình:
+ Các ước của n
+ n có bao nhiêu chữ số?
+ Tổng các chữ số của n?
+ Chữ số ở hàng lớn nhất của n.
Bài 2: (1,5đ) Tuổi cha và con.
Viết chương trình nhập số tuổi của cha và con hiện nay, tính và in ra màn hình số năm
(trước hay sau so với hiện nay) mà tuổi cha gấp đôi tuổi con
Bài 3: (3đ) Số nguyên tố.
Viết chương trình nhập số nguyên dương n (1 ≤ n ≤ 1000) từ bàn phím, in ra màn hình:
+ Các số nguyên tố nhỏ hơn n.
+ Các số nguyên tố nhỏ hơn n có tổng các chữ số cũng là một số nguyên tố.
Bài 4: (3đ) Độ bền.
Độ bền của một số nguyên không âm n được định nghĩa như sau:
- Nếu N có một chữ số thì độ bền của n bằng 0.
- Nếu N có từ 2 chữ số trở lên thì độ bền của n bằng độ bền của số nguyên là tích
các chữ số của n cộng 1.
Viết chương trình nhập số n (0 ≤ n ≤ 1000) từ bàn phím, tìm số bé hơn có độ bền lớn nhất.
BÀI GIẢI ĐỀ SỐ 23
Bài 1: (2,5đ) Số chữ số. (Giống như Bài 1 – ĐỀ SỐ 22)
Bài 2: (1,5đ) Tuổi cha và con.
cha = int(input("Nhap tuoi cha (20 <= cha < 100): "))
while (cha < 20) or (cha >= 100):
cha = int(input("Nhap lai tuoi cha (20 <= cha < 100): "))
con = int(input("Nhap tuoi con (0 < con < cha - 20): "))
while (con <= 0) or (con >= cha - 20):
con = int(input("Nhap lai tuoi con (0 < con < cha - 20): "))
x = cha
y = con
sau = 0
while (x != 2 * y) and (sau < 100):
sau = sau + 1
x = x + 1
y = y + 1
if sau < 100:
print("SAU", sau, "nam nua thi tuoi cha bang 2 lan tuoi con")
else: print("SAU hon 100 nam nua thi tuoi cha bang 2 lan tuoi con")
x = cha
y = con
truoc = 0
while (x != 2 * y) and (y > 0):
truoc = truoc + 1
x = x - 1
y = y - 1
if x == 2 * y:
print("TRUOC do", truoc, "nam thi tuoi cha bang 2 lan tuoi con")
else: print("Khong co so nam TRUOC tuoi cha bang 2 lan tuoi con")
Bài 3: (3đ) Số nguyên tố. (Giống như Bài 3 – ĐỀ SỐ 22)
Bài 4: (3đ) Độ bền. (Giống như Bài 4 – ĐỀ SỐ 22)
Trang 89
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 24
Bài 1: (2,5đ) Ước số.
Viết chương trình để khi nhập từ bàn phím 2 số tự nhiên x, y thì sẽ in ra màn
hình:
a/ Tất cả các ước số của x và y.
b/ Tất cả các ước chung của x và y.
Bài 2: (1,5đ) Giai thừa.
Giai thừa của một số n (kí hiệu n!) là tích các số tự nhiên từ 1 đến n (n! =
1.2.3…n và qui ước 0! = 1). Viết chương trình tính n! với n là số tự nhiên nhập từ
bàn phím (n < 10).
Bài 3: (3đ) Số nhỏ hơn.
Viết chương trình để khi nhập dãy n số tự nhiên a1, a2, … an (với n nhập từ
bàn phím) thì sẽ in ra dãy n số tự nhiên b1, b2, …, bn ; trong đó bk là ra số lượng
các số đứng trước số ak và nhỏ hơn ak .
Bài 4: (3đ) Ước nhiều nhất.
Viết chương trình để khi nhập số tự nhiên n từ bàn phím thì in ra màn hình
số có nhiều ước nhất trong các số từ 1 đến n và số ước của nó.
BÀI GIẢI ĐỀ SỐ 24
Trang 90
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Bài 2: (1,5đ) Giai thừa.
a = []
n = int(input("Nhap vao n (n > 0): "))
while n <= 0:
n = int(input("Nhap lai n (n > 0): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] = "))
a.append(phan_tu)
while phan_tu < 0:
a.pop(i) # Xoa phan tu co gia tri < 0 tai vi tri i
trong mang a
phan_tu = int(input("a[i] >= 0, nhap lai a[" + str(i +
1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# So luong cac so dung truoc a[i] va nho hon a[i]
b = []
for i in range(0, n): b.append(a[i])
print("Day b la:", b)
Bài 4: (3đ) Ước nhiều nhất.
ĐỀ SỐ 25
BÀI GIẢI ĐỀ SỐ 25
Trang 92
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
a = []
n = int(input("Nhap vao n (5 <= n <= 20): "))
while (n < 5) or (n > 20):
n = int(input("Nhap lai n (5 <= n <= 20): "))
for i in range(0, n):
phan_tu = int(input("a[" + str(i + 1) + "] =
"))
a.append(phan_tu)
while (phan_tu <= 0) or (phan_tu >= 100):
a.pop(i) # Xoa phan tu co gia tri <= 0
hoac >= 100 tai vi tri i trong mang a
phan_tu = int(input("a[i] >= 0, nhap lai
a[" + str(i + 1) + "] = "))
a.append(phan_tu)
print(a) # Xuat mang a
# Tim gia tri nho nhat cua mang a
min = a[0]
for i in range(1, n):
if a[i] < min: min = a[i]
print("Gia tri nho nhat cua mang a la:", min)
# Tim cac boi cua min
print("Cac so la boi cua", min, "la:", end=' ')
for i in range(0, n):
if a[i] % min == 0: print(a[i], end=' ')
print('')
# Sap xep mang a theo thu tu tang dan
for i in range(0, n - 1):
for j in range(i + 1, n):
if a[i] > a[j]:
tam = a[i]
a[i] = a[j]
a[j] = tam
print("Day duoc sap xep tang dan la:", a)
Bài 4 (3 đ):
Trang 94
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 26
Bài 1 (3 đ):
Viết chương trình thực hiện các công việc sau:
+ Nhập một dãy n số nguyên dương bất kỳ a1, a2, … an (n là một số
nhập từ bàn phím)
+ Tính tổng và trung bình cộng n số vừa nhập
+ Tìm số lẻ lớn nhất và số chẵn nhỏ nhất trong dãy trên
Bài 2 (2 đ):
Bạn Tý có T đồng đem gởi ngân hàng với lãi suất hằng tháng là L%. Sau mỗi
tháng tiền lãi được nhập vào để tính lãi suất tháng sau. Hỏi sau n tháng, số tiền
của bạn Tý sẽ được tăng lên bao nhiêu đồng?
Hãy viết chương trình để giải bài toán trên, với T, L, N là các số nhập từ bàn
phím.
Bài 3 (2,5 đ):
Dãy các số tự nhiên được viết ra thành một dãy vô hạn trên đường thẳng
1234567891011121314151617 …
Tìm chữ số ở vị trí thứ k của dãy trên? Đó là số nào?
Hãy viết chương trình để giải bài toán trên với k là số nhập từ bàn phím (k <
1000)
Bài 4 (2,5 đ):
Một số được gọi là đối xứng khi các chữ số của nó đối xứng qua tâm. Ví dụ:
7, 55, 636, 52825.
Cho một số x = 561, số đối xứng lớn hơn gần x nhất là 565
Cho một số y = 7453, số đối xứng lớn hơn gần y nhất là 7557
Hãy viết chương trình để khi nhập vào một số nguyên dương x (x < 1000000)
sẽ xuất ra màn hình số đối xứng lớn hơn gần x nhất hoặc bằng x
BÀI GIẢI ĐỀ SỐ 26
Bài 1 (3 đ):
a = []
n = int(input("Nhap vao n (n > 0): "))
while n < 0:
n = int(input("Nhap lai n (n > 0): "))
Trang 95
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
Bài 2 (2 đ):
Trang 97
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
ĐỀ SỐ 27
Viết chương trình nhập hai số nguyên dương m, n (m < n < 106). In ra màn
hình các số a1, a2, …, ak.
Ví dụ: Với m = 7, n = 9 thì in ra kết quả: 1; 3; 2
Trang 98
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
BÀI GIẢI ĐỀ SỐ 27
Bài 1: (5,0đ)
Trang 99
Bài tập Python – Tin THCS Người soạn: Nguyễn Hữu Trung
for i in range(2, n):
if n % i == 0:
nguyento = 0
break
return nguyento
c = []
dem = 0
for i in range(a, b + 1):
if ktsnt(i) == 1:
c.append(i)
dem = dem + 1
if dem > 0: print("Cac so nguyen to la:", c)
else: print("Cac so nguyen to la: KHONG")
# So luong cac so phong phu tu a den b
# Viet ham tinh tong uoc cua so n
def tonguoc(n):
tong = 0
for i in range(1, n):
if n % i == 0: tong = tong + i
return tong
dem = 0
for i in range(a, b + 1):
if tonguoc(i) > i: dem = dem + 1
print("Co", dem, "so phong phu")
Bài 3: (5,0đ)
Bài 4: (4,0đ)
Dừng
Trang 102