Рубрики

ВОРОТА | GATE-CS-2003 | Вопрос 88

В следующем фрагменте программы на Си j, kn и TwoLog_n являются целочисленными переменными, а A — массивом целых чисел. Переменная n инициализируется целым числом ≥ 3, а TwoLog_n инициализируется значением 2 * ⌈log2 (n) ⌉

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

Набор чисел, напечатанных этим фрагментом программы,
(А) {м | m ≤ n, (∃ i) [m = i!]} Здесь я! средний факториал я
(B) {м | m ≤ n, (∃ i) [m = i 2 ]}
(С) {м | m ≤ n, m простое число}
(D) {}

Ответ: (Б)
Объяснение:

// Инициализируем все значения как 0

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

    A[k] = 0;

  

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

    for (j = k + 1; j < = n; j++)

        // Если k делит j, то A [j]

        // установить как 0, иначе не ноль

        A[j] = A[j] || (j % k);

  
// Распечатать все числа, где A [j] равно 0

for (j = 3; j < = n; j++)

    if (!A[j]) 

        printf("%d", j);

Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2003 | Вопрос 88

0.00 (0%) 0 votes