JavaScript is required

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

public class Test {

public static void main(String[] args) {

int k=0,n,dem,j=0;

while(j<3) {

k++;

dem=0;

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

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

}

if(dem==1) {

System.out.print(k+" ");

j++;

}

}

}

}

Chương trình trên thực hiện công việc gì?

A.

In ra các hợp số từ 1 đến 10

B.

In ra tổng các số từ 1 đến 10

C.

In ra 3 số nguyên tố đầu tiên

D.

In ra các số từ 1 đến 100 và chia hết cho 3,7

Trả lời:

Đáp án đúng: C


Đoạn chương trình trên in ra 3 số nguyên tố đầu tiên. Giải thích: - `int k=0, n, dem, j=0;`: Khai báo các biến k, n, dem, j kiểu số nguyên, khởi tạo k=0 và j=0. - `while(j<3)`: Vòng lặp while chạy cho đến khi j = 3. Biến j được sử dụng để đếm số lượng số nguyên tố đã in. - `k++;`: Tăng giá trị của k lên 1 trong mỗi lần lặp của vòng lặp while. - `dem=0;`: Khởi tạo biến dem = 0. Biến dem được sử dụng để đếm số lượng ước của k (không kể 1 và chính nó). - `for(n=2; n<=k; n++)`: Vòng lặp for chạy từ n=2 đến n=k. - `if(k%n==0) dem++;`: Nếu k chia hết cho n, thì tăng biến dem lên 1. - `if(dem==1)`: Nếu dem = 1, tức là k chỉ có một ước (ngoài 1 và chính nó), suy ra k là số nguyên tố. - `System.out.print(k+" ");`: In giá trị của k ra màn hình, kèm theo một khoảng trắng. - `j++;`: Tăng giá trị của j lên 1. Như vậy, chương trình sẽ in ra 3 số nguyên tố đầu tiên (2, 3, 5). Khi k = 2, vòng lặp for chạy từ 2 đến 2. Khi đó, 2%2 == 0, nên dem=1. Vì dem=1, in ra 2. j=1 Khi k = 3, vòng lặp for chạy từ 2 đến 3. Khi đó, 3%2 != 0, 3%3 == 0, nên dem=1. Vì dem=1, in ra 3. j=2 Khi k = 4, vòng lặp for chạy từ 2 đến 4. Khi đó, 4%2 == 0, 4%3 != 0, 4%4 == 0, nên dem=2. Vì dem!=1, không in ra. Khi k = 5, vòng lặp for chạy từ 2 đến 5. Khi đó, 5%2 != 0, 5%3 != 0, 5%4 != 0, 5%5 == 0, nên dem=1. Vì dem=1, in ra 5. j=3 Vòng lặp while kết thúc vì j=3.

Câu hỏi liên quan