JavaScript is required

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

int N = 9 ,k;

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

if (N % k == 0) {

cout << k << “ “;

N = N/k;

k--;

}

A.

2 2 3

B.

3 3

C.

5 5

D.

2 3 7

Trả lời:

Đáp án đúng: B


Đoạn code trên thực hiện phân tích thừa số nguyên tố của số N. Ban đầu N = 9. Vòng lặp `for (k = 2; k <= N; k++)` duyệt các số từ 2 đến N để tìm ước của N. - **k = 2:** `N % k == 0` (9 % 2 == 0) là sai. k tăng lên. - **k = 3:** `N % k == 0` (9 % 3 == 0) là đúng. - In ra 3. - `N = N / k = 9 / 3 = 3`. - `k--` (k = 2). - **k = 2:** `N % k == 0` (3 % 2 == 0) là sai. k tăng lên. - **k = 3:** `N % k == 0` (3 % 3 == 0) là đúng. - In ra 3. - `N = N / k = 3 / 3 = 1`. - `k--` (k = 2). - **k = 2:** `N % k == 0` (1 % 2 == 0) là sai. k tăng lên. - **k = 3:** `k <= N` (3 <= 1) là sai. Vòng lặp kết thúc. Vậy kết quả in ra là "3 3".

Câu hỏi liên quan