 GFG App
Open App Browser
Continue

# GATE | GATE-CS-2003 | Question 88

In the following C program fragment, j, k n and TwoLog_n are integer variables, and A is an array of integers. The variable n is initialized to an integer ≥ 3, and TwoLog_n is initialized to the value of 2*⌈log2(n)⌉

## C

 `for` `(k = 3; k < = n; k++)` `    ``A[k] = 0;` `for` `(k = 2; k < = TwoLog_n; k++)` `    ``for` `(j = k + 1; j < = n; j++)` `        ``A[j] = A[j] || (j % k);` `for` `(j = 3; j < = n; j++)` `    ``if` `(!A[j]) ``printf``(\"%d\", j);`

The set of numbers printed by this program fragment is

(A)

{m | m ≤ n, (∃ i) [m = i!]} Here i! mean factorial of i

(B)

{m | m ≤ n, (∃ i) [m = i2]}

(C)

{m | m ≤ n, m is prime}

(D)

Last print never executes

Explanation:

Option (D) is correct because if take n=4 then TwoLog_n value 4. first loop initially A=A=0; then two loop k = 2 to 4 and j = 3 to 4

```if k=2
j=3  A = A || (3%2)
= 0 || 1
A = 1
j=4  A = A || (4%2)
= 0 || 0
A = 0
K=3
j=4  A = A || (4%3)

= 0 || 1
A = 1
K=4
J=5 condition false means terminate
A = A = 1```

Means last print loop never execute.

Quiz of this Question
Please comment below if you find anything wrong in the above post

My Personal Notes arrow_drop_up