У цьому розділі ми розглянемо функції, які мають лише один параметр і одне значення, що повертається.
Параметр повинен мати цілий тип, а значення, що повертається або цілого типу, якщо функція щось обчислює, або логічного типу, якщо функція повинна відповісти на запитання: вірно чи не вірно.
Тобто всі функції обчислювальні функції мають прототип int Name1(int). Ім'я функції може бути будь-яким.
А всі функції, які відповідають на питання вірно чи не вірно, мають прототип bool Name2(int). Ім'я функції може бути будь-яким.
Написати функцію NumDiv, яка знаходить кількість дільників натурального числа. Використовуючи цю функцію написати таку програму: ввести з клавіатури натуральні числа N, A та B. Знайти N чисел більших А, які мають В дільників.
Результат роботи програми

Код програми
// Підключення необхідних бібліотек
#include <iostream>
using namespace std;
// Оголошення прототипу функції
int NumDiv(int n);
// Головна функція програми
int main()
{
int a, b, n, k = 0; // Оголошення змінних
cin >> n >> a >> b; // Введення даних: n - кількість чисел, [a,b] - діапазон
// Цикл для пошуку чисел
do
{
a++; // Перехід до наступного числа
if (NumDiv(a) == b) // Перевірка кількості дільників
{
k++; // Лічильник знайдених чисел
cout << a << " "; // Виведення числа
}
} while (k < n); // Умова виходу з циклу
return 0; // Завершення програми
}
// Функція для підрахунку кількості дільників числа
int NumDiv(int n)
{
if (n <= 0) return -1; // Обробка некоректного вхідного значення
int k = 0; // Лічильник дільників
// Цикл перевірки всіх можливих дільників
for (int i = 1; i <= n; i++)
{
if (n % i == 0) // Якщо i є дільником n
{
k++; // Збільшуємо лічильник
}
}
return k; // Повертаємо кількість дільників
}
Використовуючи функцію NumDiv написати таку програму: ввести з клавіатури N натуральних чисел і число В. Скільки з введених чисел мають В дільників?
Результат роботи програми

Код програми
#include <iostream>
using namespace std;
// Прототип функції для підрахунку дільників
int NumDiv(int n);
int main()
{
int a, b, n, k = 0; // Оголошення змінних:
// n - кількість чисел, b - шукана кількість дільників
// a - поточне число, k - лічильник чисел з b дільниками
cin >> n >> b; // Введення кількості чисел та шуканої кількості дільників
for(int i = 1; i <= n; i++) // Цикл для обробки n чисел
{
cin >> a; // Введення поточного числа
if (NumDiv(a) == b) // Перевірка, чи має число a рівно b дільників
{
k++; // Якщо так, збільшуємо лічильник
}
}
cout << k; // Виведення кількості чисел з b дільниками
return 0;
}
// Функція для підрахунку кількості дільників числа n
int NumDiv(int n)
{
if (n <= 0) return -1; // Обробка некоректного вхідного значення
int k = 0; // Лічильник дільників
for (int i = 1; i <= n; i++) // Перебір всіх можливих дільників
{
if(n % i == 0) // Якщо i є дільником n
{
k++; // Збільшуємо лічильник
}
}
return k; // Повертаємо кількість дільників
}
Написати функцію IsPal, яка визначає, чи є натуральне число паліндромом. Використовуючи цю функцію написати таку програму: ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі числа паліндроми.
Результат роботи програми

Код програми
#include <iostream>
using namespace std;
// Прототип функції для перевірки паліндромів
bool IsPal(int);
int main()
{
int a, b; // Межі діапазону [a, b]
cin >> a >> b; // Введення меж діапазону
// Перебір всіх чисел у діапазоні
for (int n = a; n <= b; n++)
{
if(IsPal(n)) // Перевірка чи є число паліндромом
{
cout << n << " "; // Виведення паліндрому
}
}
return 0;
}
// Функція перевірки чи є число паліндромом
bool IsPal(int n)
{
int x = n; // Зберігаємо оригінальне число
int m = 0; // Змінна для зберігання перевернутого числа
int c; // Тимчасова змінна для цифр
do
{
c = n % 10; // Отримуємо останню цифру
m = m * 10 + c; // Додаємо цифру до перевернутого числа
n = n / 10; // Видаляємо останню цифру
} while (n != 0);
// Повертаємо true, якщо перевернуте число дорівнює оригінальному
return (m == x);
}
Використовуючи функції NumDiv і IsPal написати таку програму: вводити з клавіатури натуральні числа, поки не введено число 0. Якщо введене число є паліндромом вивести це число та біля нього вивести кількість його дільників.
Результат роботи програми

Код програми
#include <iostream>
using namespace std;
int NumDiv(int); // Функція для обчислення кількості дільників
bool IsPal(int); // Перевірка, чи є число паліндромом
int main()
{
int a;
do
{
cin >> a;
if (IsPal(a) && a != 0)
{
int divCount = NumDiv(a);
cout << a << " " << divCount << endl;
}
} while (a > 0);
return 0;
}
bool IsPal(int n)
{
int reversed = 0, original = n;
while (n > 0)
{
reversed = reversed * 10 + n % 10;
n /= 10;
}
return original == reversed;
}
int NumDiv(int n)
{
int count = 0;
for (int i = 1; i <= n; i++)
{
if (n % i == 0)
count++;
}
return count;
}
Тексти функцій є у програмі, але на лістингу вони згорнуті.
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти всі числа, що мають С дільників. | NumDiv |
| 2 | Ввести з клавіатури натуральні числа A та N. Знайти N чисел більших А, які є паліндромами | IsPal |
| 3 | Ввести з клавіатури N натуральних чисел. Для кожного введеного числа знайти суму його цифр | SumDig |
| 4 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа яке є паліндромом знайти кількість його дільників | IsPal, NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [1,99999]. Для кожного отриманого числа обчислити та вивести на екран кількість цифр. | NumDig |
| 2 | Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти всі числа, сума цифр яких дорівнює С. | SumDig |
| 3 | Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, які мають В дільників. | NumDiv |
| 4 | Ввести з клавіатури N натуральних чисел. Для кожного введеного числа яке є паліндромом знайти кількість його цифр. | IsPal, NumDig |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти кількість його цифр. | NumDig |
| 2 | Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [1,99]. Для кожного отриманого числа обчислити та вивести кількість його дільників. | NumDiv |
| 3 | Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі числа, що мають парну суму дільників. | SumDiv |
| 4 | Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, які є паліндромами та мають В дільників. | IsPal, NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури N натуральних чисел. Для кожного введеного числа знайти суму його цифр. | SumDig |
| 2 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Скільки серед введених чисел прості? | IsPrime |
| 3 | Ввести з клавіатури натуральні числа N та В. Отримати N випадкових чисел з інтервалу [1,99999]. Вивести на екран ті з них, у яких кількість цифр більше В. | NumDig |
| 4 | Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі паліндроми, для кожного паліндрома знайти кількість його дільників. | IsPal, NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, у яких добуток цифр дорівнює В. | ProdDig |
| 2 | Ввести з клавіатури N натуральних чисел. Чи всі вони прості? | IsPrime |
| 3 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Чи є серед них паліндроми, які є простими числами? | IsPal, IsPrime |
| 4 | Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [1,99]. Для кожного отриманого числа обчислити та вивести на екран кількість його дільників | NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти кількість чисел які мають С дільників. | NumDiv |
| 2 | Ввести з клавіатури натуральні числа A, В та N. Знайти N паліндромів більших А, у яких цифровий корінь дорівнює В. | IsPal, DigRoot |
| 3 | Ввести з клавіатури N натуральних чисел та число В. Вивести на екран числа, у яких кількість цифр дорівнює В. | NumDig |
| 4 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа вивести його цифровий корінь. | DigRoot |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [100,99999]. Для кожного отриманого числа знайти його першу цифру. | FirstDig |
| 2 | Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти кількість чисел у яких добуток цифр дорівнює С. | ProdDig |
| 3 | Ввести з клавіатури натуральні числа A, В та N. Знайти N паліндромів більших А, у яких перша цифра дорівнює В. | IsPal, FirstDig |
| 4 | Ввести з клавіатури N натуральних чисел та число В. Чи є серед введених чисел такі, у яких кількість дільників дорівнює В? | NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти його першу цифру. | FirstDig |
| 2 | Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [100,99999]. Скільки серед них прості? | IsPrime |
| 3 | Ввести з клавіатури натуральні числа A і B. В інтервалі [A;B] знайти всі паліндроми. | IsPal |
| 4 | Ввести з клавіатури натуральні числа A та N. Знайти N досконалих чисел, більших А, та кількість їх дільників. Пояснення: натуральне число називається досконалим (совершенным), якщо воно дорівнює сумі своїх дільників, включаючи 1 і виключаючи само число. Наприклад, число 6 досконале (6=1+2+3). | SumDiv, NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури N натуральних чисел та число В. Скільки серед введених чисел мають В дільників? | NumDiv |
| 2 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти його факторіал. | Fact |
| 3 | Ввести з клавіатури натуральне число N та отримати та вивести на екран N випадкових чисел з інтервалу [10,99999]. Для кожного числа знайти його максимальну цифру. | MaxDig |
| 4 | Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти паліндроми, які є простими числами. | IsPal, IsPrime |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, у яких мінімальна цифра дорівнює В. | MinDig |
| 2 | Ввести з клавіатури N натуральних чисел. Скільки з введених чисел є числами Фібоначчи? | IsFib |
| 3 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти його подвійний факторіал. | FactDouble |
| 4 | Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [1,99999]. Для кожного числа, що є паліндромом вивести кількість його дільників. | IsPal, NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти всі числа які мають С дільників. | NumDiv |
| 2 | Ввести з клавіатури натуральні числа A та N. Знайти N паліндромів більших А, які є простими числами. | IsPal, IsPrime |
| 3 | Ввести з клавіатури N натуральних чисел. Для кожного введеного числа знайти суму введеного та перевернутого числа. Наприклад, для числа 167 вивести 928 (167+761). | ReverseInt |
| 4 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Кожне з введених чисел вважати номером числа Фібоначчі і для кожного з них вивести відповідне число Фібоначчі. | FibByPos |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [1,99999]. Для кожного числа з’ясувати, воно паліндром чи ні? | IsPal |
| 2 | Ввести з клавіатури натуральні числа A, B та С. В інтервалі [A;B] знайти всі числа у яких С дільників. | NumDiv |
| 3 | Ввести з клавіатури натуральні числа A, В та N. Знайти N чисел більших А, у яких сума цифр дорівнює В. | SumDig |
| 4 | Ввести з клавіатури N натуральних чисел. Для кожного введеного числа, що є числом Фібоначчі знайти цифровий корінь | DigRoot, IsFib |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного введеного числа знайти різницю введеного та перевернутого числа. Наприклад, для числа 167 вивести -594 (167-761). | ReverseInt |
| 2 | Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [1,30]. Кожне з чисел вважати номером числа Фібоначчі і для кожного з них вивести відповідне число Фібоначчі, а також кількість його цифр. | FibByPos, NumDig |
| 3 | Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі числа паліндроми. | IsPal |
| 4 | Ввести з клавіатури натуральні числа A,В та N. Знайти N чисел більших А, у яких кількість дільників кратна В. | NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури дійсне число х. Обчислити та вивести на екран точне та приблизне значення функції ex, яке обчислюється за допомогою розкладання цієї функції в ряд |
Fact |
| 2 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного простого числа знайти суму його цифр. | IsPrime, SumDig |
| 3 | Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [10,99999]. Знайти кількість отриманих паліндромів. | IsPal |
| 4 | Ввести з клавіатури натуральні числа A та B. Кожне з чисел інтервалу [A;B] вважати номером числа Фібоначчі і для кожного з них вивести відповідне число Фібоначчі. | FibByPos |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури дійсне число х. Обчислити та вивести на екран точне та приблизне
значення функції sin(x), яке обчислюється за допомогою розкладання цієї функції в ряд |
Fact |
| 2 | Ввести з клавіатури натуральні числа A та N. Знайти N простих чисел більших А, що є паліндромами. | IsPrime, IsPal |
| 3 | Ввести з клавіатури N натуральних чисел. Для кожного введеного числа, знайти кількість його цифр. | NumDig |
| 4 | Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [10,99999]. Знайти серед них числа Фібоначчі. Для кожного такого числа обчислити кількість дільників. | IsFib, NumDiv |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури дійсне число х. Обчислити та вивести на екран точне та
приблизне значення функції cos(x), яке обчислюється за допомогою розкладання цієї функції
в ряд |
Fact |
| 2 | Ввести з клавіатури натуральне число N та отримати і вивести на екран N випадкових чисел з інтервалу [10,999]. Знайти серед них кількість простих чисел. | IsPrime |
| 3 | Два натуральних числа називаються дружніми, якщо кожне з них дорівнює сумі всіх дільників іншого (виключаючи саме число). Ввести з клавіатури натуральні числа A та N. Знайти N пар дружніх чисел більших А. | SumDiv |
| 4 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Для кожного числа яке є числом Армстронга, знайти кількість його дільників. | NumDiv, IsArm |
| № задачі | Умова задачі | Які функції потрібні |
|---|---|---|
| 1 | Ввести з клавіатури натуральні числа A та N. Знайти N чисел більших А, які є числами Армстронга. | IsArm |
| 2 | Ввести з клавіатури N натуральних чисел. Переверніть кожне введене число. | ReverseInt |
| 3 | Два простих числа, різниця між якими дорівнює числу 2, називаються «близнюками». Ввести з клавіатури натуральні числа A та B. В інтервалі [A;B] знайти всі числа «близнюки» | IsPrime |
| 4 | Вводити з клавіатури натуральні числа поки не буде введено число 0. Знайти серед введених чисел паліндроми які є простими числами. | IsPal, IsPrime |