Bài Thực hành 1- Nhập – Xuất trong Python MỤC TIÊU Trình bày được các kiểu dữ liệu cơ bản, cú pháp các câu lệnh nhập/xuất Vận dụng được các kiến thức cơ bản về biểu thức, thư viện
Trang 2Bài Thực hành 1- Nhập – Xuất trong Python
MỤC TIÊU
Trình bày được các kiểu dữ liệu cơ bản, cú pháp các câu lệnh nhập/xuất
Vận dụng được các kiến thức cơ bản về biểu thức, thư viện toán học math trong khi xây dựng chương trình
Vận dụng được để viết các chương trình theo yêu cầu
BÀI TẬP CÓ LỜI GIẢI
Cách làm: Sử dụng cú pháp lệnh xuất dữ liệu print ra màn hình theo định dạng
Chương trình minh họa
Nhận xét: Các lỗi thường gặp khi soạn thảo code
Viết sai print
Thiếu dấu nháy đơn để kết thúc chuỗi hoặc dấu đóng ngoặc
Bài 2 Xây dựng chương trình nhập vào hai số a, b từ bàn phím, sau đó tính tổng và in kết quả ra
màn hình
Xác định yêu cầu bài toán
- Dữ liệu nhập vào: hai số a, b
- Dữ liệu xuất ra: Tổng a+b
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán Biến vào a, b kiểu
số (số nguyên hoặc thực); Biến ra tong kiểu số và cùng kiểu vơia a/b
Trang 3b=float(input('Nhập vào số b: '))
print(a+b)
Nhận xét: Các lỗi thường gặp khi soạn thảo code
Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số nguyên
Viết sai biểu thức ép kiểu
Bài 3 Xây dựng chương trình nhập vào hai số a, n từ bàn phím, sau đó tính an và in kết quả ra màn hình
Xác định yêu cầu bài toán
- Dữ liệu nhập vào: hai số a, n
- Dữ liệu xuất ra: an
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán Biến vào a, n kiểu
số (Giả sử chọn a và n kiểu số nguyên); Biến ra an kiểu float (Có thể khai báo
biến hoặc xuất trực tiếp ra màn hình, trong bài này chọn cách thứ 2) + Bước 1: Nhập hai số a, n từ bàn phím
+ Bước 2: Sử dụng toán tử a**n trong để tính an
Kết quả chạy chương trình với giá trị nhập vào là a=2 và n=4
Bài 4 Xây dựng chương trình nhập sử dụng thư viện math lấy giá trị hằng số Pi, nhập giá trị bán
kính và in chu vi diện tích của hình tròn tương ứng ra màn hình
Xác định yêu cầu bài toán
Trang 4print('Diện tích hình tròn là: ',math.pi*r*r )
Kết quả chạy chương trình với giá trị nhập vào là r=1
Nhận xét: Các lỗi thường gặp khi soạn thảo code
Viết toán tử nhân sai như: 2Pi*r
Viết sau math.Pi, math.PI do chưa có ý thức đầy đủ về viết hoa thường
BÀI TẬP TỰ LÀM
Bài 1 Xây dựng chương trình hiển thị ra màn hình menu như sau:
F1: Nhap F5: Tim kiếm theo ten F2: Nhap them F6: Hiển thị học sinh gioi
F3: Doc tep F7: Thong ke F4: Hien thi ESC: Thoat
Bài 2 Xây dựng chương trình hiển thị ra màn hình các dấu sao tạo thành hình như sau:
Bài 3 Xây dựng chương trình giới thiệu về bạn: tên, tuổi, ngày tháng năm sinh, địa chỉ, nghề
nghiệp, sở thích và một số thông tin khác
Bài 4 Mở rộng bài mẫu 2 cho phép chương trình nhập tài khoản sau “Tai khoan:” và mật khẩu từ
bàn phím sau “Mat khau:“
Bài 5 Xây dựng chương trình sumi giúp người và máy tính nói chuyện với nhau về: tên, tuổi,
giới tính, số điện thoại, email, địa chỉ, nghề nghiệp, sở thích, sở trường và một số thông tin khác
Bài 6: Viết chương trình nhập vào kích thước chiều dài của một hình chữ nhật, hiển thị ra màn
hình chu vi và diện tích của hình chữ nhật đó
Bài 7: Viết chương trình nhập vào kích thước chiều dài cạnh của một hình vuông, hiển thị ra
màn hình chu vi và diện tích của hình vuông đó
Bài 6: Viết chương trình nhập vào kích thước độ dài bán kính của một hình tròn, hiển thị ra màn
hình chu vi và diện tích của hình tròn đó
Trang 5Bài Thực hành 2- Cấu trúc điều khiển
MỤC TIÊU
Trình bày được cú pháp các câu lệnh nhập/xuất
Trình bày được cú pháp các câu lệnh rẽ nhánh: if khuyết, if else và if elif
Mô tả được hoạt động của các cấu trúc rẽ nhánh
Đưa ra được điểm khác nhau của lệnh rẽ nhánh if, if else và if elif
Lựa chọn được cấu trúc rẽ nhánh thích hợp và vận dụng linh hoạt trong khi xây dựng chương trình
Phân tích được cú pháp của các cấu trúc lặp: while, for
So sánh được điểm giống và khác nhau giữa các dạng lệnh
Sử dụng thành thạo các câu lệnh lặp để thể hiện giải thuật
Vận dụng được để viết các chương trình theo yêu cầu
BÀI TẬP CÓ LỜI GIẢI
Bài 1 Xây dựng chương trình nhập vào một số từ bàn phím, kiểm tra xem số đó là số đó
có chia hết cho 2 hay không và in kết quả ra màn hình
Xác định yêu cầu bài toán:
- Dữ liệu nhập vào: a
- Dữ liệu xuất ra: a chia hết cho 2 hoặc a không chia hết cho 2
- Cách làm: Xác định các biến vào/ra/trung gian trong bài toán gồm biến nhập vào a kiểu số nguyên
+ Bước 1: Nhập một số nguyên từ bàn phím (giả sử đặt tên là a) + Bước 2: Kiểm tra số a có chia hết cho 2 hay không (dùng toán tử %, a
chia hết cho 2 thì a chia 2 dư 0, ngược lại a chia 2 dư 1)
+ Bước 3: Dùng cấu trúc điều khiển if…else để kiểm tra
o Nếu số a%2==0 thì in ra thông báo: đây là số chẵn
o Ngược lại thì in ra thông báo: đây là số lẻ
Chương trình minh họa
Trang 6 Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số nguyên
Viết sai toán tử kiểm tra bằng == thành =
Thiếu dấu : để bắt đầu khối các lệnh con
Câu lệnh con không viết thụt lùi đầu dòng
Bài 2 Xây dựng chương trình nhập vào một số nguyên dương N sau đó tính tổng N số
nguyên dương đầu tiên
Xác định yêu cầu bài toán
- Dữ liệu nhập vào: N nguyên dương
- Dữ liệu xuất ra: S=1+2+3+… +N
- Cách làm:
o Bước 1: Nhập số nguyên dương N
o Bước 2: Áp dụng cấu trúc lặp for để duyệt từ 1N, tại mỗi lần duyệt
cộng giá trị vào viết S
o Bước 3: In kết quả ra màn hình
Chương trình minh họa
n=int(input('Nhập vào số nguyên n: '))
s=0
for i in range(1,n+1,1):
s+=i
print(s)
Nhận xét: Các lỗi thường gặp khi soạn thảo code
Viết hàm range sai hoặc không cho đúng giá trị yêu cầu, như range(n), range(1,n,1)
Viết biểu thức lặp sai
Bài 3 Tìm n nhỏ nhất để S>a lớn hơn a, a nhập vào từ bàn phím Biết 1 1 1 1
o Bước 2: Khởi gán giá trị cho biến lưu trữ s=0 và n=0
o Bước 3: Dùng cấu trúc lặp while để duyệt từ 1N, tại mỗi vòng lặp
tăng n và cộng thêm 1/n vào biến lưu trữ s, kiểm tra nếu s thỏa điều kiện>a thì thoát khỏi vòng lặp và in kết quả ra màn hình
Trang 7 Chương trình minh họa
a=float(input('Nhập vào số nguyên a: '))
print('Giá trị n nhỏ nhất để s>',a,' là: n=',n,'Khi đó s=',s)
Nhận xét: Các lỗi thường gặp khi soạn thảo code
Thiếu chuyển đổi kiểu dữ liệu cho a sang kiểu số
Thiếu dấu : để bắt đầu khối các lệnh con
Hai câu lệnh con n+=1 và s+=1/n không thẳng lề trái
Chưa phân biệt rõ ràng kiểu dữ liệu số và kiểu dữ liệu chuỗi
Bài 4 Xây dựng chương trình ĐĂNG NHẬP có giao diện như bài 1 Cho phép người
dùng nhập tên tài khoản và mật khẩu tối đa 3 lần Nếu tài khoản = “CSKTLT” và mật khẩu=”fit@123” thì hiển thị “DANG NHAP THANH CONG” Nếu cả 3 lần nhập thông tin tên tài khoản và mật khẩu chưa đúng thì hiển thị “DANG NHAP THAT BAI”
Gợi ý xác định yêu cầu bài toán
Dữ liệu nhập vào: tk, mk
Dữ liệu xuất ra: “DANG NHAP THANH CONG” hoặc “DANG NHAP THAT BAI”
Cách làm: Xác định các biến vào/ra/trung gian trong bài toán gồm biến
nhập vào tk, mk kiểu string; biến trung gian dem để đếm số lần người dùng nhập tk, mk
Dùng lệnh lặp while với điều kiện lặp là dem<3 tức khi dem>=3 thì thoát,
công việc lặp gồm: Nhập tk, mk; kiểm tra xem đăng nhập xem có thành
công không?; Cuối cùng là kiểm tra xem đã quá số lần nhập sai trong giới hạn cho phép là 3 hay chưa?
o Bước 1: Sử dụng lệnh lặp với điều kiện lặp là dem<3
o Bước 2: Viết công việc lặp
Hiển thị “Tai khoan:” và nhập giá trị cho biến tk, sử dụng cú pháp xuất dữ liệu ra màn hình Write(" Tai khoan: ");
Hiển thị “Mat khau: " nhập giá trị cho biến mk
Dùng cấu trúc rẽ nhánh if để kiểm tra nếu (tk== "CSKTLT"
&& mk == "fit@123”) đúng thì xuất dữ liệu ra màn hình
“DANG NHAP THANH CONG”
Xác định yêu cầu bài toán
Trang 8- Dữ liệu nhập vào: Số thực a
- Dữ liệu xuất ra: n thỏa điều kiện
- Cách làm:
o Bước 1: Nhập số thực a
o Bước 2: Khởi gán giá trị cho biến lưu trữ s=0 và n=0
o Bước 3: Dùng cấu trúc lặp while để duyệt từ 1N, tại mỗi vòng lặp
tăng n và cộng thêm 1/n vào biến lưu trữ s, kiểm tra nếu s thỏa điều kiện>a thì thoát khỏi vòng lặp và in kết quả ra màn hình
Chương trình minh họa
dem=0
while(dem<3):
print('Lần đăng nhập thứ: ', dem + 1)
tk = input('Nhap tai khoản: ')
mk = input('Nhap Mật khẩu: ')
if(tk== 'python' and mk == 'fit@123'):
print('DANG NHAP THANH CONG')
break
else: dem+=1
Nhận xét: Các lỗi thường gặp khi soạn thảo code
Viết sai tên toán tử quan hệ ==, toán tử and
Tổ chức các lệnh con trong vòng lặp while
Quên không tăng giá trị cho biến đếm số lần đăng nhập
Dùng cấu trúc rẽ nhánh
Không viết lệnh break
Bài 5 Xây dựng chương trình nhập vào số N, rồi kiểm tra xem N có phải là số nguyên tố
hay không
Phân tích bài toán
- Dữ liệu nhập vào: Số nguyên n
- Dữ liệu xuất ra: Có/không
- Cách làm:
- Bước 1: Nhập số nguyên dương N sử dụng cú pháp vào ra
- Bước 2: Số nguyên tố là số chỉ có hai ước số là 1 và chính nó Như vậy, nếu trong khoảng từ 2 đến √N không tồn tại một ước số nào của N (số ước=0), thì N là số nguyên tố
- Bước 3: Giả sử dùng biến chạy i, duyệt i từ (2) đến √N (có thể chọn cận trên là N/2 hoặc N-1 cũng được) với bước nhảy là 1 Kiểm tra số N có chia hết cho i hay không,
Trang 9nếu có thì in kết quả ra màn hình N không là số nguyên tố và thoát; Nếu số ước=0 thì
Bài này có thể dùng kỹ thuật cờ để giải quyết
- Bước 1 Lúc đầu mặc định N là số nguyên tố (phất cờ);
- Bước 2 (lặp) Kiểm tra nếu N có ước khác 1 hoặc chính nó thì N là số nguyên tố (hạ cờ xuống);
- Bước 3 Cuối cùng kiểm tra trạng thái cờ: Nếu cờ đang phất thì đúng N là
số nguyên tố; Nếu cờ đã bị hạ xuống thì sai N không là số nguyên tố
Chương trình minh họa
Trang 10Bài tập tự làm
Bài 1 Viết chương trình quản lý tiền điện của một hộ với các thông tin sau: họ tên một
chủ hộ, chỉ số điện kế tháng trước (chiso1) và chỉ số điện kế tháng này (chiso2), tính tiền điện tháng này cho hộ, biết rằng :
- Mỗi kw trong 60 kw đầu tiên có đơn gía là 5đ,
Từ kw thứ 61 đến kw thứ 160 có đơn giá 8đ,
Từ kw thứ 161 trở lên có đơn gía 10đ
Gợi ý:
Bước 1: Nhập vào chiso1 và chiso2
Bước 2: Tính số KW của tháng bằng cách: soKW=chiso2-chiso1
Bước 3: Dùng cấu trúc if để kiểm tra
+ Nếu soKW<=60sotien=soKW*5
+ Nếu 61<=soKW<=160tính số KW vượt quá 60 Vậy số tiền sẽ được tính như sau: sotien=60*5+soKWvuot*8
+ Nếu 161<=soKW tính số KW vượt quá 161 Vậy số tiền sẽ được tính như sau:
- Bước 1: Nhập các hệ số của phương trình bậc hai
- Bước 2: Sử dụng cấu trúc if…else để giải bài toán
+ Đầu tiên kiểm tra hệ số a, nếu a=0kết luận đây không là phương trình bậc hai, ngược lại tính delta như sau: delta=b*b-4*a*c
+ Kiểm tra giá trị của delta:
Nếu delta<0kết luận phương trình vô nghiệm
Nếu delta=0phương trình có nghiệm kép x=-b/(2*a)
Nếu delta>0phương trình có hai nghiệm phân biệt:
X1=-(b+sqlt(delta))/(2*a) X2=-(b-sqlt(delta))/(2*a)
- Bước 3: In kết quả ra màn hình
Bài 3 Xây dựng chương trình nhập một tháng, cho biết tháng đó thuộc mùa nào (Xuân,
Hạ, Thu, Ðông), biết rằng tháng 2, 3, 4 là mùa Xuân, tháng 5, 6, 7: mùa Hè, tháng 8, 9, 10: mùa Thu, và tháng 11, 12, 1: mùa Ðông
Gợi ý:
- Bước 1: nhập vào một số từ bàn phím ()
Trang 11- Bước 2: Sử dụng cấu trúc if elif để kiểm tra
+ Trường hợp: 2,3,4thông báo đây là mùa xuân
+ Trường hợp: 5,6,7thông báo đây là mùa hè
+ Trường hợp: 28,9,10thông báo đây là mùa thu
+ Trường hợp: 11,12,1thông báo đây là mùa đông
- Bước 3: In kết quả ra màn hình
Bài 4 Viết chương trình nhập vào số nguyên N (0<N<=100), sau đó tính tổng các số chẵn
từ 0N
Gợi ý:
Bước 1: Nhập số nguyên dương N
Bước 2: Áp dụng cấu trúc lặp for để duyệt từ 1N, tại mỗi lần duyệt kiểm tra xem phần
tử đang xét có chẵn hay không? Nếu chẵn thì cộng thêm giá trị đó vào s
Bước 3: In kết quả ra màn hình
Bài 5 Viết chương trình nhập vào số tự nhiên N, sau đó in ra màn hình tất cả các số
nguyên tố trong đoạn 1N
Gợi ý:
Bước 1: Nhập số nguyên dương N
Bước 2: Áp dụng cấu trúc lặp for để duyệt từ 1N, tại mỗi lần duyệt kiểm tra xem phần
tử đang xét có là số nguyên tố hay không? Nếu đúng là số nguyên tố thì hiển thị giá trị đó
ra màn hình
Bài 6 Xây dựng chương trình PYTHON thực hiện nhập vào ba số nguyên dương từ bàn
phím Kiểm tra xem ba số vừa nhập vào có phải là độ dài ba cạnh của một tam giác nào
đó hay không? Nếu đúng thì thực hiện hiển thị ra diện tích tam giác có cạnh là ba số đã nhập
Bài 7 Xây dựng chương trình giới thiệu về bạn: tên, tuổi, giới tính, nghề nghiệp, sở thích Sau đó hiên thị ra màn hình tên, giới tính và nhận xét
Trong đó: Nếu tuổi <30 thì in ra màn hình “Bạn quá trẻ”, còn lại không hiển thị gì;
Nếu nghề nghiệp = “Sinh viên” thì in ra màn hình “Bạn hãy cố gắng trở thành sinh viên xuất sắc nhé!”, còn lại thì in ra màn hình “nghề nghiệp của bạn cũng hay đấy!”;
Nếu sở thích =”lập trình” thì in ra màn hình “Tuyệt vời! Chúc bạn sẽ trở thành lập trình viên giỏi”, nếu sở thích =”chơi game” thì in ra màn hình “Đây là sở thích không tốt”, còn lại thì không hiển thị gì ra màn hình
Bài 8Xây dựng chương trình PYTHON: nhập một số n từ bàn phím, kiểm tra n và hiển
thị ra kết quả sau:
Trang 12Nếu n âm thì hiển thị ra thì bắt người dùng nhập lại
Nếu n nguyên dương và là số chẵn thì tính và hiển thị ra tổng các số lẻ từ 1 n
Nếu n nguyên dương và là số lẻ thì tính và hiển thị ra tổng các số chẵn từ 1 n
Bài 9 Xây dựng chương trình nhập vào từ bàn phím hai số nguyên dương x, n (10<x,
n<20) Tính và hiển thị ra màn hình tổng: S2 = x+x/2+x/3+ +x/n
Bài 10 Xây dựng chương trình PYTHON hiển thị ra màn hình giá trị các biểu thức sau:
Trong đó n là số nguyên dương được nhập vào từ bàn phím
Bài 11 Xây dựng chương trình PYTHON thực hiện nhập vào từ bàn phím một số N(
N>20) Thực hiện hiển thị ra các số không chia hết cho 3 nằm trong đoạn [1-N]
Bài 12 Xây dựng chương trình PYTHON thực hiện nhập vào một số có y trong đoạn
[0,9999] tương ứng với một năm Hiển thị ra màn hình can-chi tương ứng của năm y vừa nhập?
Trang 13Bài Thực hành 3- Cấu trúc dữ liệu
MỤC TIÊU
Lựa chọn được cấu trúc dữ liệu thích hợp với từng bài toán
Kết hợp linh hoạt các cấu trúc điều khiển rẽ nhánh và lặp trong khi xây dựng chương trình
Vận dụng được để viết các chương trình theo yêu cầu
BÀI TẬP CÓ LỜI GIẢI
Bài 1 Viết chương trình nhập và lưu vào list Sau đó tính tổng các phần tử trong list đó
Cách làm
- Bước 1: Khởi tạo list rỗng Khai báo một biến lưu trữ S chứa tổng các phần tử
- Bước 2: Lặp n lần bằng cách dùng range để tạo ra n số và vòng lặp for dể duyệt qua n số này
Lần lượt nhập giá trị cho từng phần tử và thêm vào trong list
- Bước 3: Dùng vòng lặp for dể duyệt qua các phần tử trong mảng
Cộng thêm giá trị của phần tử vào biến lưu trữ S
print('Tổng các phần tử trong list: ',s)
Bài 2 Viết chương trình nhập và lưu vào list Sau đó sắp xếp các phần tử trong list theo
chiều tăng dần
Cách làm
- Bước 1: Khởi tạo list rỗng
- Bước 2: Lặp n lần bằng cách dùng range để tạo ra n số và vòng lặp for dể duyệt qua n số này
Trang 14o Lần lượt nhập giá trị cho từng phần tử và thêm vào trong list
- Bước 3: Sắp xếp các phần tử trong list theo chiều tăng dần, sử dụng hàm sort
Bài 3 Giả sử có một danh sách các kiểu thời tiết Hiển thị các loại thời tiết Rain
Xác định yêu cầu bài toán
Dữ liệu nhập vào: weather_types kiểu list
Ví dụ weather_types = ["Rain", "light-Rain", "Sunny", "Fog", "Fog-Rain",
"Thunderstorm", "Type of Weather"]
Dữ liệu xuất ra: Các loại thời tiết mưa
Trong ví dụ trên là ['Rain', 'light-Rain', 'Fog-Rain']
Cách làm:
o Bước 1: tạo giá trị cho biến weather_types lưu các kiểu thời tiết
o Bước 2: Khởi gán giá trị rỗng cho biến lưu trữ các loại thời tiết Rain
o Bước 3: Dùng cấu trúc lặp for để duyệt từ weather_types, tại mỗi
vòng lặp kiểm tra nếu wt thỏa điều kiện chứa chuối 'Rain' thì thoát lưu thêm loại thời tiết wt vào weather_typeRAIN_found
o Bước 4: Hiển thị weather_typeRAIN_found kết quả ra màn hình
Chương trình minh họa
weather_types = ["Rain", "light-Rain", "Sunny", "Fog", "Fog-Rain",
Trang 15Bài tập tự làm
Bài 1 Cho biết kết quả hiển thị ra màn hình sau đoạn chương trình và giải thích?
planet_names = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn",
Bài 2 Cho khai báo xâu như sau:
string s="Dai hoc Su phạm Ky thuat Hung Yen";
Hãy viết câu lệnh nhập xâu st từ bàn phím Sau đó kiểm tra xem st có trong xâu s hay không?
Bài 3 Viết chương trình PYTHON thực hiện: Nhập một chuỗi ký tự scmt từ bàn phím,
scmt tương ứng là số CMTND, kiểm tra tính hợp lệ của xâu scmt? Biết xâu scmt hợp lệ là xâu chỉ toàn các ký tự là chữ số và có độ dài từ 9 tới 11 chữ số
Bài 4 Viết chương trình PYTHON thực hiện: Nhập một chuỗi ký tự se từ bàn phím, se
tương ứng là số địa chỉ email của một cá nhân nào đó, kiểm tra tính hợp lệ của xâu se? Biết xâu se hợp lệ là xâu chứa đúng 1 ký tự @ và có định dạng x@y.z, trong đó x, y, z phải là các xâu khác rỗng
Bài 5 Hãy viết chương trình máy tính để
Lưu tên các mặt hàng mà công ty X bán
Thêm mặt hàng A nếu chưa có
Thay đổi thông tin mặt hàng A thành B nếu tồn tại
Tìm kiếm xem có tồn lại mặt hàng X (nhập từ bàn phím) hay không?
Bài 6 Hãy viết chương trình máy tính để
Lưu thông tin sinh viên của khoa CNTT
Thêm sinh viên A vào lớp 101181
Thay đổi thôn tin sinh viên A có mã sinh viên là 10118002 nếu tồn tại
Tìm kiếm xem có tồn lại lớp 101185 hay không? Nếu có thì lớp gồm bao nhiêu sinh viên
Trang 16Bài Thực hành 4 – Hàm Mục tiêu: Sau khi học song bài này người học có khả năng
- Giải thích được cú pháp để tạo một hàm
- Sử dụng được hàm trong chương trình
- Modul hoá bài toán, cài đặt bài toán có sử dụng hàm
- Phân biệt được biến toàn cục, biến cục bộ
- Yêu thích lập trình
Bài tập mẫu
Bài tập 1: Viết chương trình thực hiện nhập vào hai số từ bàn phím hiển thị ra màn
hình giá trị lớn nhất của hai số đó
b = input('nhập vào số thứ hai: ')
print('Giá trị lớn nhất của 2 số (',a,',',b,') =',max(a,b))
Kết quả chạy chương trình
nhập vào số thứ nhất: 2
nhập vào số thứ hai: 3
Giá trị lớn nhất của 2 số ( 2 , 3 ) = 3
Bài tập 2: Viết chương trình thực hiện tìm và chiếu lên màn hình các cặp số hữu
nghị trong phạm vi từ 1 đến 1000 Biết rằng hai số tự nhiên A, B được coi là hữu nghị nếu như số này bằng tổng các ước số dương của số kia và ngược lại (Lưu ý: số n không được coi là ước số của chính nó)
Trang 17Ví dụ: số 6 có các ước số dương là 1, 2, 3; và 1+2+3 =6, do vậy ta có cặp số hữu nghị là 6, 6
Thuật toán tìm các cặp số hữu nghị
Với mọi số a trong phạm vi từ 1 đến 1000 ta thực hiện:
mà ta cần tính tổng ước của số đó
def tongUoc(a):
tong_uoc_a = 0;
for uoc in range(1, a):
if (a % uoc == 0): # Nếu a chia hết cho uoc
tong_uoc_a = tong_uoc_a + uoc # thì cộng uoc vào tổng ước của a
for uoc in range(1, a):
if (a % uoc == 0): # Nếu a chia hết cho uoc
tong_uoc_a = tong_uoc_a + uoc # thì cộng uoc vào tổng ước của a
return tong_uoc_a
for a in range(1, 1001):
b= tongUoc(a); # gán b = tỏng ước của a
if (tongUoc(b)== a): # Tính tổng ước của b và Nếu a = tỏng ước của b thì
print(a,' \t ', b) #Hiển thị a, b ra màn hình