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àm tinh_tong_so_nguyen_to thay đổi giá trị của biến toàn cục tong_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

Giải bài tập những môn khác