JavaScript is required

Cho đoạn chương trình sau:

public class Test {

public static void main(String[] args) {

int n,k,dem;

for ( k = 5; k <= 10; k++ ) {

dem = 0;

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

if ( k%n==0) {

dem++;

}

if (dem > 1)

System.out.print(k);

}

}

}

}

Đoạn chương trình trên cho kết quả là bao nhiêu?

A.

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

B.

B.468910

C.

C.8910

D.

D.68910

Trả lời:

Đáp án đúng: B


Đề bài yêu cầu tìm kết quả in ra màn hình của đoạn code Java. Ta cần phân tích đoạn code để biết chương trình thực hiện những gì. Đoạn code có hai vòng lặp for lồng nhau. Vòng ngoài lặp từ k = 5 đến k = 10. Vòng trong lặp từ n = 2 đến n = k. Bên trong vòng lặp trong có một biến `dem` dùng để đếm số lượng ước của k trong đoạn [2, k]. Nếu `dem > 1`, tức là k có nhiều hơn 1 ước trong đoạn [2, k], thì k sẽ được in ra. Chúng ta sẽ xét từng giá trị của k: - k = 5: vòng lặp n chạy từ 2 đến 5. Các ước của 5 trong đoạn này là 5. Vậy dem = 1. Không in ra. - k = 6: vòng lặp n chạy từ 2 đến 6. Các ước của 6 trong đoạn này là 2, 3, 6. Vậy dem = 3. In ra 6. - k = 7: vòng lặp n chạy từ 2 đến 7. Các ước của 7 trong đoạn này là 7. Vậy dem = 1. Không in ra. - k = 8: vòng lặp n chạy từ 2 đến 8. Các ước của 8 trong đoạn này là 2, 4, 8. Vậy dem = 3. In ra 8. - k = 9: vòng lặp n chạy từ 2 đến 9. Các ước của 9 trong đoạn này là 3, 9. Vậy dem = 2. In ra 9. - k = 10: vòng lặp n chạy từ 2 đến 10. Các ước của 10 trong đoạn này là 2, 5, 10. Vậy dem = 3. In ra 10. Vậy kết quả in ra là 68910.

Câu hỏi liên quan