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 = 7; 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


Đoạn chương trình này in ra các số k (từ 7 đến 10) nếu số lượng ước của k (từ 2 đến k) lớn hơn 1. Ta xét từng trường hợp: - k = 7: Các số n từ 2 đến 7. 7%2 != 0, 7%3 != 0, 7%4 != 0, 7%5 != 0, 7%6 != 0, 7%7 == 0. Vậy dem = 1. Vì dem > 1 là sai nên không in ra. - k = 8: Các số n từ 2 đến 8. 8%2 == 0, dem = 1. 8%3 != 0, 8%4 == 0, dem = 2. Vì dem > 1 là đúng nên in ra 8. - k = 9: Các số n từ 2 đến 9. 9%2 != 0, 9%3 == 0, dem = 1. 9%4 != 0, 9%5 != 0, 9%6 != 0, 9%7 != 0, 9%8 != 0, 9%9 == 0, dem = 2. Vì dem > 1 là đúng nên in ra 9. - k = 10: Các số n từ 2 đến 10. 10%2 == 0, dem = 1. 10%3 != 0, 10%4 != 0, 10%5 == 0, dem = 2. Vì dem > 1 là đúng nên in ra 10. Vậy kết quả in ra là 8910.

Câu hỏi liên quan