JavaScript is required

Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?

int main() {

int k=0,n,dem,j=0;

while(j<3) {

k++;

dem=0;

for(n=2;n<=k;n++)

if(k%n==0)

dem++;

if(dem==1)

{ cout << k << “ “; j++;

}

} return

0;

}

A.

Chương trình báo lỗi.

B.

2 3 5

C.

2 3 5 7 11

D.

3 4 5 7 11

Trả lời:

Đáp án đúng: B


Đoạn code C++ này tìm và in ra các số nguyên tố từ 2 trở lên cho đến khi in đủ 3 số. `int k = 0, n, dem, j = 0;` Khởi tạo các biến: k (số hiện tại đang xét), n (biến lặp trong vòng for), dem (đếm số ước của k), j (đếm số lượng số nguyên tố đã in). `while (j < 3)` Vòng lặp while tiếp tục cho đến khi in đủ 3 số nguyên tố (j < 3). `k++;` Tăng k lên 1 trong mỗi vòng lặp while. `dem = 0;` Đặt lại dem về 0 trước khi đếm số ước của k. `for (n = 2; n <= k; n++)` Vòng lặp for để tìm các ước của k từ 2 đến k. `if (k % n == 0)` Nếu k chia hết cho n, thì n là một ước của k, tăng dem lên 1. `if (dem == 1)` Nếu dem bằng 1, điều này có nghĩa là k chỉ có một ước (ngoài 1 và chính nó), tức là k là số nguyên tố. `cout << k << " ";` In số nguyên tố k. `j++;` Tăng j lên 1 (đã tìm thấy một số nguyên tố). Khi k = 2, vòng for chạy từ 2 đến 2. `k % n == 0` chỉ đúng khi n = 2, vậy dem = 1. In ra 2 và j tăng lên 1. Khi k = 3, vòng for chạy từ 2 đến 3. `k % n == 0` đúng khi n = 3, vậy dem = 1. In ra 3 và j tăng lên 2. Khi k = 4, vòng for chạy từ 2 đến 4. `k % n == 0` đúng khi n = 2 và n = 4, vậy dem = 2. Không in gì cả. Khi k = 5, vòng for chạy từ 2 đến 5. `k % n == 0` đúng khi n = 5, vậy dem = 1. In ra 5 và j tăng lên 3. Vòng lặp while kết thúc. Vậy kết quả in ra là: 2 3 5

Câu hỏi liên quan