Sau khi đã được học về biến toàn cục và biến cục bộ, Khánh muốn sử dụng biến toàn cục trong chương
VẬN DỤNG
Câu 1: Sau khi đã được học về biến toàn cục và biến cục bộ, Khánh muốn sử dụng biến toàn cục trong chương trình tính tổng các số nguyên tố nhỏ hơn hoặc bằng n, với n là số tự nhiên lớn hơn 2. Ví dụ, với n = 10, các số nguyên tố nhỏ hơn hoặc bằng 10 là 2,3,5,7. Tổng các số nguyên tố này là 17.
Yêu cầu: Viết chương trình tính tổng các số nguyên tố nhỏ hoặc bằng n, với n là số tự nhiên lớn hơn 2, có sử dụng biến toàn cục
Dữ liệu vào: Số tự nhiên n>2
Dữ liệu ra: Tổng S của các số nguyên tố nhỏ hơn hoặc bằng n
*Chương trình:
# Biến toàn cục để lưu tổng các số nguyên tố
tong_so_nguyen_to = 0
def la_so_nguyen_to(k):
"""Kiểm tra xem k có phải là số nguyên tố không."""
if k < 2:
return False
for i in range(2, int(k**0.5) + 1):
if k % i == 0:
return False
return True
def tinh_tong_so_nguyen_to(n):
"""Tính tổng các số nguyên tố nhỏ hơn hoặc bằng n."""
global tong_so_nguyen_to # Sử dụng biến toàn cục
for i in range(2, n + 1):
if la_so_nguyen_to(i):
tong_so_nguyen_to += i
# Chương trình chính
n = int(input("Nhập số tự nhiên n (n > 2): "))
tinh_tong_so_nguyen_to(n)
print("Tổng các số nguyên tố nhỏ hơn hoặc bằng", n, "là:", tong_so_nguyen_to)
*Giải thích:
- Biến toàn cục tong_so_nguyen_to
:
+ Được khai báo bên ngoài các hàm, do đó nó là biến toàn cục.
+ Ban đầu được gán giá trị 0.
+ Sẽ được sử dụng để lưu tổng các số nguyên tố.
- Hàm la_so_nguyen_to(k)
:
+ Kiểm tra xem một số k
có phải là số nguyên tố hay không.
+ Trả về True
nếu k
là số nguyên tố, ngược lại trả về False
.
- Hàm tinh_tong_so_nguyen_to(n)
:
+ Nhận vào số n
làm tham số.
+ Sử dụng global tong_so_nguyen_to
để khai báo rằng hàm này sẽ sử dụng biến toàn cục tong_so_nguyen_to
.
+ Duyệt qua các số từ 2 đến n
.
+ Với mỗi số, gọi hàm la_so_nguyen_to
để kiểm tra xem nó có phải là số nguyên tố hay không.
+ Nếu là số nguyên tố, cộng nó vào biến tong_so_nguyen_to
.
- Chương trình chính:
+ Nhập giá trị n
từ người dùng.
+ Gọi hàm tinh_tong_so_nguyen_to(n)
để tính tổng các số nguyên tố.
+ In kết quả ra màn hình.
*Lưu ý:
Việc sử dụng
global
cho phép hàmtinh_tong_so_nguyen_to
thay đổi giá trị của biến toàn cụctong_so_nguyen_to
.Sử dụng biến toàn cục có thể giúp chương trình ngắn gọn hơn trong một số trường hợp, nhưng cũng có thể làm cho chương trình khó hiểu và khó bảo trì hơn nếu lạm dụng.
Bình luận