Назад Зміст Вперед

Задачі з вкладеними циклами

Будь-який складний алгоритм завжди складається з декількох простих алгоритмів. Потрібно навчитись їх бачити та комбінувати.

Приклад 1

Знайти 10 перших простих чисел.

В цій задачі використовуються такі алгоритми:

Зрозуміло, що другий алгоритм вкладений у першій.

Змінні:

Вхідних даних немає.

Вихідні:

Проміжні:

Алгоритм

  1. Якщо згадати перший алгоритм, то у ньому:
  2. Зрозуміло, що цей алгоритм буде зовнішнім циклом у нашій програмі і перебір та перевірку чисел потрібно починати з числа 1.
  3. Умова, на яку у цьому циклі перевіряється число n, це – чи є це число простим? Алгоритм, який це визначає буде вкладений в перший.
  4. Згадаємо, що число n називається простим, якщо в нього немає дільників в інтервалі [2, n div 2].
  5. Тепер згадаємо другий алгоритм, який перевіряє, чи просте число n:
  6. Другий алгоритм вкладений у перший перед перевіркою числа n.

Програма

Результат роботи програми

Відповідь
2 3 5 7 11 13 17 19 23 29

Приклад 2

Дано натуральне число n. Знайдіть його цифровий корінь (від слова цифра, не плутати з коренем квадратним!)

Визначення

Цифровий корінь числа n це цифра (1, 2, 3,...9), яка обчислюється з цифр числа n за таким алгоритмом:

  1. Знайдемо у числі n суму цифр s,
  2. Перевіримо цю суму s:

Результат роботи програми

Ввід Вивід
3456 9
555 6

Змінні:

Вхідні:

Вихідні:

Проміжні:

Алгоритм

  1. В цій задачі використовуються такі алгоритми:
  2. Зрозуміло, що першій алгоритм вкладений у другий.
  3. Згадаємо алгоритм знаходження суми цифр числа n: обчислюємо останню цифру числа, накопичуємо її до суми і відкидаємо останню цифру від числа. Все це робимо поки не переберемо всі цифри числа (у програмі виділено жирним).
  4. У другому алгоритмі:
  5. Значення отриманої суми присвоюється змінній ck та виводиться на екран.

Програма 1

Значно простіше можна знайти цифровий корінь числа, якщо помітити, що він є остачею від ділення цього числа на 9. Причому, якщо остача дорівнює 0, то цифровий корінь такого числа дорівнює 9.

Програма 2

Приклад 3

Знайдіть цифрові корені всіх простих чисел з інтервалу [100, 200]. Надрукувати число та відповідний цифровий корінь.

Результат роботи програми

Відповідь
101 2 103 4 107 8 109 1 113 5 127 1 131 5 137 2 139 4 149 5 151 7 157 4 163 1 167 5 173 2 179 8 181 1 191 2 193 4 197 8 199 1

Змінні:

Вхідних даних немає.

Вихідні:

Проміжні:

Алгоритм

  1. В цій задачі використовуються такі алгоритми:
  2. Зрозуміло, що першій алгоритм це зовнішній цикл for з параметром n. Він перебирає числа в інтервалі [100, 200].
  3. Другий алгоритм це пошук дільників i для кожного числа n. Це теж цикл for з параметром i. Цей цикл вкладений у перший.
  4. Якщо число просте, тобто дільників у числі немає (p=true), то виконується третій алгоритм, обчислення цифрового кореню числа n.

Програма

Варіанти задач

    Варіант 1

    1. Надрукувати всі числа з інтервалу [100, 200], цифровий корінь яких кратний 3.
    2. Зайдіть 5 перших простих трьохзначних чисел.

    Варіант 2

    1. Дано число a. Зайдіть a перших простих чисел.
    2. Знайдіть всі трьохзначні паліндромі та їх цифровий корінь. Вивести число та його цифровий корінь.

    Варіант 3

    1. Дано число a. Знайти просте число, що більше a.
    2. Дано ціле число n. Знайдіть всі двохзначні числа, які мають такий цифровий корінь.

    Варіант 4

    1. Дано число a. Знайдіть 5 простих чисел, більших a.
    2. Дано ціле число n. Знайдіть всі трьохзначні паліндроми, які мають такий цифровий корінь.

    Варіант 5

    1. Дано число a. Знайти найближче до нього просте число.
    2. Знайдіть перші 10 п’ятизначних паліндромів.

    Варіант 6

    1. Знайдіть всі числа з інтервалу (900, 1000), остання цифра яких співпадає з цифровим коренем числа. Вивести число та його цифровий корінь.
    2. Знайдіть 5 перших трьохзначних паліндромів, які є простими числами.

    Варіант 7

    1. Знайдіть всі числа з інтервалу (100, 150), які кратні своєму цифровому кореню. Вивести число та його цифровий корінь.
    2. Знайдіть кількість трьохзначних паліндромів, які є простими числами.

    Варіант 8

    1. Знайдіть всі паліндроми з інтервалу [10, 10000]. Пояснення: паліндром, це число, яке читається однаково справа наліво та зліва направо, тобто саме число дорівнює перевернутому числу.
    2. Знайдіть кількість простих чотирьохзначних чисел.

    Варіант 9

    1. Знайдіть перші 20 шестизначних паліндромів та їх цифрові корені.
    2. В [2, 9] знайти всі парі взаємно простих чисел.

    Варіант 10

    1. Знайдіть цифрові корені перших 15 чисел Фібоначчи. Виводити число та його цифровий корінь.
    2. Знайти кількість п’ятизначних паліндромів, що є простими числами.

    Варіант 11

    1. Знайдіть всі паліндроми з інтервалу [10000, 100000] остання цифра яких співпадає з цифровим коренем числа. Виводити число та його цифровий корінь.
    2. Для кожного числа з діапазону [100; 120] обчисліть та надрукувати тільки ті дільники, що є простими числами. Виводити число та його прості дільники.

    Варіант 12

    1. Обчисліть та надрукувати цифрові корені досконалих (совершенных) чисел, що належать діапазону (1; 10000). Виводити число та його цифровий корінь. Пояснення: натуральне число називається досконалим (совершенным), якщо воно дорівнює сумі своїх дільників, включаючи 1 і виключаючи само число. Наприклад, число 6 досконале (6=1+2+3).
    2. Дано три натуральних числа A, B та C. В [A; B] знайти числа взаємно прості з C.

    Варіант 13

    1. Надрукувати перші 10 п’ятизначних паліндромів, що є простими числами.
    2. Надрукувати перші 20 чисел Фібоначчі та їх цифрові корені.

    Варіант 14

    1. Надрукувати перші 8 чисел Фібоначчі що є простими числами.
    2. Знайти чотирьохзначні паліндроми, що закінчуються на свій цифровий корінь.

    Варіант 15

    1. Надрукувати з чисел Фібоначчі в інтервалі від 200 до 30000, тільки прості числа, а також їх порядкові номери в ряду Фібоначчі.
    2. Знайти кількість п’ятизначних паліндромів, що починаються та закінчуються на свій цифровий корінь.

    Варіант 16

    1. Знайдіть цифрові корені чисел Фібоначчи, що належать інтервалу (100, 1000). Виводити число та його цифровий корінь.
    2. Дано два натуральних числа A та В. Знайти перші 10 натуральних чисел, що більше за А та взаємно прості з В.

    Варіант 17

    1. Для кожного числа з діапазону [100; 120] обчисліть та надрукувати тільки ті дільники, що є членами послідовності Фібоначчі.
    2. Знайдіть кількість п’ятизначних паліндромів, що кратні своєму цифровому кореню

Назад Зміст Вперед