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

}

}

}

}

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

A.

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

B.

2 3 5

C.

4 4 6

D.

4 9 25

Trả lời:

Đáp án đúng: B


Đoạn chương trình trên thực hiện một vòng lặp `while` với điều kiện `j < 3`. Bên trong vòng lặp `while`, biến `k` tăng lên mỗi lần lặp. Một vòng lặp `for` được sử dụng để đếm số lượng ước của `k` (ngoại trừ 1 và chính nó). Nếu `k` có đúng một ước (tức là chỉ chia hết cho 1 và chính nó, hay nói cách khác, `k` là số nguyên tố), thì `k` được in ra và `j` tăng lên. Bước 1: k = 1, dem = 0. Vòng for không chạy (n=2;n<=1). if(dem==1) là sai Bước 2: k = 2, dem = 0. Vòng for chạy n=2, 2%2==0, dem = 1. if(dem==1) là đúng, in ra 2, j=1. Bước 3: k = 3, dem = 0. Vòng for chạy n=2, 3%2!=0, n=3, 3%3==0, dem = 1. if(dem==1) là đúng, in ra 3, j=2. Bước 4: k = 4, dem = 0. Vòng for chạy n=2, 4%2==0, dem = 1, n=3, 4%3!=0, n=4, 4%4==0, dem=2. if(dem==1) là sai Bước 5: k = 5, dem = 0. Vòng for chạy n=2, 5%2!=0, n=3, 5%3!=0, n=4, 5%4!=0, n=5, 5%5==0, dem = 1. if(dem==1) là đúng, in ra 5, j=3. Vòng while kết thúc. Vậy, kết quả in ra là 2 3 5.

Câu hỏi liên quan