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 n,k,dem;

for ( k = 1; k < 10; k++ )

{

dem = 0;

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

if (

k%n==0) dem++;

if

(dem > 1) cout << k;

}

}

A.

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

B.

468910

C.

8910

D.

4689

Trả lời:

Đáp án đúng: D


Đoạn chương trình này in ra các số k từ 1 đến 9 mà có nhiều hơn một ước số trong khoảng từ 2 đến k. - k = 1: Vòng lặp `n` không chạy vì `n = 2` và điều kiện `n <= k` không thỏa mãn. `dem = 0`. Không in gì. - k = 2: Vòng lặp `n` chạy với `n = 2`. `k % n == 0` (2 % 2 == 0) nên `dem = 1`. Không in gì. - k = 3: Vòng lặp `n` chạy với `n = 2`. `k % n != 0` (3 % 2 != 0) nên `dem = 0`. Không in gì. - k = 4: Vòng lặp `n` chạy với `n = 2` và `n = 3` và `n = 4` thì `n=2`, `4 % 2 == 0` nên `dem = 1`. Khi `n=4`, `4 % 4 == 0` nên `dem = 2`. In ra 4. - k = 5: Vòng lặp `n` chạy với `n = 2, 3, 4, 5`. `dem` chỉ tăng khi `n=5`, `5 % 5 == 0` nên `dem = 1`. Không in gì. - k = 6: Vòng lặp `n` chạy với `n = 2, 3, 4, 5, 6`. `6 % 2 == 0` nên `dem = 1`. `6 % 3 == 0` nên `dem = 2`. `6 % 6 == 0` thì `dem=3`. In ra 6. - k = 7: Vòng lặp `n` chạy với `n = 2, 3, 4, 5, 6, 7`. `7 % 7 == 0` nên `dem = 1`. Không in gì. - k = 8: Vòng lặp `n` chạy từ 2 đến 8. `8 % 2 == 0` nên `dem = 1`. `8 % 4 == 0` nên `dem = 2`. `8 % 8 == 0` nên `dem = 3`. In ra 8. - k = 9: Vòng lặp `n` chạy từ 2 đến 9. `9 % 3 == 0` nên `dem = 1`. `9 % 9 == 0` nên `dem = 2`. In ra 9. Kết quả là 4689.

Câu hỏi liên quan