JavaScript is required

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

public class Test {

public static void main(String[] args) {

int k,n,dem;

for (k=1000;k<=1020;k++) {

dem=0;

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

if (k%n==0) dem++;

}

if (dem==1) System.out.print(k+"\t");

}

}

Chương trình trên in ra kết quả là bao nhiêu?

A.

3 5 7

B.

1009 1013 1019

C.

7 11

D.

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

Trả lời:

Đáp án đúng: D


Đề bài yêu cầu tìm các số nguyên tố trong khoảng từ 1000 đến 1020. Đoạn chương trình duyệt qua các số từ 1000 đến 1020 (biến k). Với mỗi số k, biến dem đếm số lượng ước của k (từ 2 đến k). Nếu dem = 1, tức là k chỉ có một ước duy nhất trong khoảng từ 2 đến k, suy ra k là số nguyên tố (vì số nguyên tố chỉ chia hết cho 1 và chính nó). Lưu ý rằng vòng lặp `for (n=2; n<=k; n++)` nên điều kiện `k % n == 0` sẽ xảy ra khi n = k. Vì vậy, nếu k là số nguyên tố, `dem` sẽ bằng 1. Vậy, chương trình sẽ in ra các số nguyên tố trong khoảng [1000, 1020]. Các số nguyên tố trong khoảng này là: 1009, 1013, 1019. Như vậy, đáp án đúng là B. 1009 1013 1019

Câu hỏi liên quan