Задания для практической работы

Пример №1 (ex_06_01.cpp)

Составить программу разложения натурального числа n на простые множители.

Решение оформить в виде функции decomposition_number. Функция принимает в качестве аргумента целое число и возвращает СТРОКУ c простыми делителями, разделенных пробелом

...
#include <string>
string decomposition_number(int number)
{
    string result="";
    ...
    return result;
}

Пример №2 (ex_06_02.cpp)

  1. Составить программу вычисления КОЛИЧЕСТВА делителей при разложении натурального числа n на простые множители.

    Решение оформить в виде функции count_divider. Функция принимает в качестве аргумента целое число и возвращает КОЛИЧЕСТВО простых делитей

#include <string>
int count_divider(int number)
{
    int result=0;
    //...
    return result;
}
  1. (ДОПОЛНИТЕЛЬНО)

    На промежутке от 0 до 9999 найти число с МАКСИМАЛЬНЫМ количеством делителей Решение оформить в виде функции max_count_divider. Функция принимает в качестве аргумента целое число и возвращает ЧИСЛО С МАКСИМАЛЬНЫМ КОЛИЧЕСТВОМ простых делитей

  2. (ДОПОЛНИТЕЛЬНО)

    На промежутке от 0 до 9999 найти число с МАКСИМАЛЬНЫМ количеством неповторяющихся делителей

Пример №3 (ex_06_03.cpp)

Дан числовой ряд и некоторое число e . Найти сумму тех чле­нов ряда, модуль которых больше или равен заданному числу е, если общий член этого ряда имеет следующий вид:

Решение оформить в виде функции iter_cycle, принимающей на вход вещественное число e и возвращающей сумму членов ряда

double iter_cycle(double e)
{
    double S = 0;
    //...
    return S;
}

Самостоятельно (ex_06_04.cpp):

Дан числовой ряд и некоторое число e . Найти сумму тех чле­нов ряда, модуль которых больше или равен заданному числу е, если общий член этого ряда имеет следующий вид:

Решение оформить в виде функции iter_cycle, принимающей на вход вещественное число e и возвращающей сумму членов ряда (см. пример №3)

Пример №5 (ex_06_05.cpp)

Создать программу для «переворота» заданного целого числа. Решение оформить в виде функции coup_number. Функция принимает в качестве аргумента целое число, а возвращает «перевернутой» исходное число.

int coup_number(int number)
{
    int result=0;
    //...
    return result;
}

Решение: Количество разрядов числа заранее неизвестно. Поэтому для числа необходимо находить остаток от деления на 10, чтобы получить последнюю цифру числа. Эту цифру необходимо добавлять к новому числу, сдвинув разряды (умножить на 10 и добавить остаток), а исходное переопределить путем деления на 10.

Пример №6 (ex_06_06.cpp)

Из натурального числа удалить заданную цифру. Число и цифру вводить с клавиатуры. Например, задано число 5683. Требуется удалить из него цифру 8. Получится число 563.

Решение оформить в виде функции delete_digit. Функция принимает в качестве аргумента целое число и удаляемую цифру, а возвращает исходное число без указанной цифры

int delete_digit(int number, int digit)
{
    int result=0;
    //...
    return result;
}

Решение: Задача усложняется тем, что заранее неизвестно количество разрядов числа. Поэтому исходное число проще начать проверять с конца с помощью оператора mod (нахождения остатка от деления). Делить надо на 10, чтобы получить последнюю цифру числа. Если последняя цифра не совпадает с цифрой, которую требуется удалить, то ее надо перенести в другое число, перед этим сдвинув его разряды. Легче реализовать, чтобы новое число формировалось наоборот: старшие разряды исходного будут младшими. После того, как заданная цифр будет удалена, число снова переворачивается.