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?
=>=>
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.





