Hỗ trợ: xuất hoá đơn GTGT 8%.
Móc khóa mica Tại Xưởng
2.100+ Đã đặt hàng

Móc Khóa Mica & Standee

In Anime, Logo Trường, Lớp Học
MUA 1 TẶNG 1 HÔM NAY
Free Thiết Kế Freeship từ 10c

Viết chương trình python đếm số cac so tự nhiên chia hết cho 2 nhưng không chia …

Viết chương trình python đếm số cac so tự nhiên chia hết cho 2 nhưng không chia …

Viết chương trình python đếm số cac so tự nhiên chia hết cho 2 nhưng không chia hết cho 5 trong khoảng 50 đến 80

Hỏi bởi: linhvuong
3 câu trả lời
▲ 6✔
Chào các em, hôm nay chúng ta sẽ cùng nhau giải một bài tập lập trình Python rất thú vị, liên quan đến việc đếm số theo các điều kiện cho trước. Bài tập này nằm trong chương trình Tin học lớp 11 của chúng ta, giúp các em củng cố kiến thức về vòng lặp và câu lệnh điều kiện.

Đề bài yêu cầu chúng ta viết chương trình Python để đếm số các số tự nhiên chia hết cho 2 nhưng không chia hết cho 5, trong khoảng từ 50 đến 80.

Chúng ta sẽ đi từng bước để xây dựng chương trình này nhé!

Bước 1: Phân tích yêu cầu của bài toán

Trước hết, chúng ta cần hiểu rõ các điều kiện:
1. Khoảng xét: Các số tự nhiên từ 50 đến 80. Điều này có nghĩa là chúng ta sẽ xem xét các số nguyên lớn hơn hoặc bằng 50 và nhỏ hơn hoặc bằng 80.
2. Điều kiện chia hết cho 2: Một số được coi là chia hết cho 2 nếu số dư của phép chia số đó cho 2 bằng 0. Trong Python, chúng ta sử dụng toán tử modulo \(%\) để lấy số dư. Vậy, điều kiện này có thể biểu diễn là \(so % 2 == 0\).
3. Điều kiện không chia hết cho 5: Một số được coi là không chia hết cho 5 nếu số dư của phép chia số đó cho 5 khác 0. Biểu diễn trong Python là \(so % 5 != 0\).
4. Kết hợp hai điều kiện: Chúng ta cần đếm những số thỏa mãn cả hai điều kiện trên. Trong lập trình, chúng ta dùng toán tử logic \(and\) để kết hợp hai điều kiện.
5. Mục tiêu: Đếm số lượng các số thỏa mãn. Chúng ta cần một biến để lưu trữ số lượng này và tăng nó lên mỗi khi tìm được một số thỏa mãn.

Bước 2: Lựa chọn cấu trúc lập trình phù hợp

Để xét tất cả các số trong một khoảng xác định, vòng lặp là công cụ phù hợp nhất. Trong Python, chúng ta có thể sử dụng vòng lặp \(for\) hoặc vòng lặp \(while\). Vòng lặp \(for\) với hàm \(range()\) thường rất tiện lợi khi chúng ta biết rõ điểm bắt đầu và kết thúc.

Hàm \(range(start, stop)\) sẽ sinh ra một dãy các số bắt đầu từ \(start\) và kết thúc trước \(stop\). Vì đề bài yêu cầu xét đến số 80 (bao gồm cả 80), nên chúng ta cần \(range(50, 81)\).

Bước 3: Khai báo biến đếm

Chúng ta cần một biến để đếm số lượng các số thỏa mãn điều kiện. Biến này nên được khởi tạo bằng 0 trước khi bắt đầu vòng lặp. Ví dụ, ta có thể đặt tên biến là \(dem_so\).

Bước 4: Viết mã lệnh cho từng bước

Bây giờ, chúng ta sẽ kết hợp các yếu tố trên để viết chương trình.

Đầu tiên là phần khai báo biến đếm:

dem_so = 0

Tiếp theo là vòng lặp để duyệt qua từng số trong khoảng từ 50 đến 80:

for so in range(50, 81):

Bên trong vòng lặp, chúng ta sẽ kiểm tra hai điều kiện. Nếu cả hai điều kiện đều đúng, chúng ta sẽ tăng biến đếm lên 1.

if so % 2 == 0 and so % 5 != 0:

dem_so = dem_so + 1

hoặc cách viết ngắn gọn hơn:

dem_so += 1

Cuối cùng, sau khi vòng lặp kết thúc, chúng ta sẽ in kết quả ra màn hình.

print(“Số lượng các số tự nhiên chia hết cho 2 nhưng không chia hết cho 5 trong khoảng từ 50 đến 80 là:”, dem_so)

Bước 5: Ghép nối các phần và kiểm tra chương trình

Chương trình hoàn chỉnh sẽ trông như sau:

dem_so = 0

for so in range(50, 81):

if so % 2 == 0 and so % 5 != 0:

dem_so += 1

print(“Số lượng các số tự nhiên chia hết cho 2 nhưng không chia hết cho 5 trong khoảng từ 50 đến 80 là:”, dem_so)

Bây giờ, chúng ta hãy thử nhẩm một vài trường hợp để kiểm tra logic.
– Số 50: Chia hết cho 2 (50 % 2 == 0), nhưng chia hết cho 5 (50 % 5 == 0). Vậy không thỏa mãn điều kiện “không chia hết cho 5”.
– Số 51: Không chia hết cho 2.
– Số 52: Chia hết cho 2 (52 % 2 == 0), không chia hết cho 5 (52 % 5 != 0). Thỏa mãn! Biến đếm tăng lên 1.
– Số 54: Chia hết cho 2 (54 % 2 == 0), không chia hết cho 5 (54 % 5 != 0). Thỏa mãn! Biến đếm tăng lên 2.
– Số 55: Không chia hết cho 2.
– Số 56: Chia hết cho 2 (56 % 2 == 0), không chia hết cho 5 (56 % 5 != 0). Thỏa mãn! Biến đếm tăng lên 3.
– Số 60: Chia hết cho 2 (60 % 2 == 0), nhưng chia hết cho 5 (60 % 5 == 0). Không thỏa mãn.

Các số chia hết cho 2 trong khoảng 50 đến 80 là các số chẵn: 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80.
Trong danh sách này, chúng ta loại bỏ những số chia hết cho 5 (tức là có chữ số tận cùng là 0 hoặc 5). Vì chúng ta chỉ xét số chẵn nên chỉ cần loại bỏ những số tận cùng bằng 0: 50, 60, 70, 80.
Những số còn lại thỏa mãn là: 52, 54, 56, 58, 62, 64, 66, 68, 72, 74, 76, 78.
Đếm số lượng các số này, ta có: 12 số.
Vậy chương trình của chúng ta sẽ xuất ra kết quả là 12.

Ghi chú về công thức Toán học:
Trong bài toán này, chúng ta sử dụng khái niệm chia hết. Một số nguyên \(a\) chia hết cho một số nguyên \(b\) (khác 0) nếu tồn tại một số nguyên \(k\) sao cho \(a = b \times k\). Điều này tương đương với việc số dư trong phép chia \(a\) cho \(b\) bằng 0. Ta ký hiệu là \(a \pmod{b} = 0\).
Trong Python, phép toán modulo được ký hiệu là \(%\), do đó điều kiện chia hết cho 2 được viết là \(so % 2 == 0\) và điều kiện không chia hết cho 5 được viết là \(so % 5 != 0\).

Chúc các em ôn tập tốt và thực hành thành công với bài tập này! Nếu có bất kỳ thắc mắc nào, đừng ngần ngại hỏi thầy nhé.

Trả lời bởi: Giáo viên Chuyên Môn
▲ 1

\(*\) Python:

Dem = 0

for x in range (51, 80) :

    if x % 2 == 0 and x % 5 != 0:

        Dem += 1

print(‘Co’, Dem, ‘so chia het cho 2 va khong chia het cho 5’)

____________________________________________

\(*\) Khoảng \(50\) đến\(80\) \(⇒ (50; 80) ⇒ {51, 52, …, 78, 79}\)

\(*\) range \((51, 80) ⇒\) Trả về vùng giá trị từ \(51\) đến \(79\)

\(*\) x % 2 == 0 ⇒ x chia 2 có phần dư bằng 0 ⇒ x chia hết cho 2

\(*\) x % 5 != 0 ⇒ x chia 5 có phần dư khác 0 ⇒ x không chia hết cho 5

\(*\) and: Nối biểu thức điều kiện
    

Trả lời bởi: Yanquinn Khôngcótên
▲ 0

d = 0
for i in range(50,80,2):
    if i%2==0 and i%5!=0:
        d+=1
print(d)

Trả lời bởi:

Viết một bình luận

WhatsApp
Facebook
Chat Zalo
Zalo
097.538.4646
Zalo
Giới thiệu Như Hảo