
Задачи на C++ 1. нужно написать програму проверка делимости чисел на 3 и 9 2. И програму
факторизация числа

Ответы на вопрос

Ответ:
1.Программа проверки делимости чисел на 3 и 9 на C++:
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Введите число: ";
cin >> num;
if (num % 3 == 0) {
cout << num << " делится на 3" << endl;
if (num % 9 == 0) {
cout << num << " делится на 9" << endl;
}
} else {
cout << num << " не делится на 3 и 9" << endl;
}
return 0;
}
2.Программа на C++, которая принимает число и выводит факториал этого числа:
#include <iostream>
using namespace std;
int main() {
int num, fact = 1;
cout << "Введите число: ";
cin >> num;
// Вычисление факториала числа
for (int i = 1; i <= num; i++) {
fact *= i;
}
cout << "Факториал числа " << num << " равен " << fact << endl;
return 0;
}
Объяснение:



Задача 1: Проверка делимости чисел на 3 и 9
Для написания программы, которая проверяет делимость чисел на 3 и 9, можно использовать следующий код на языке C++:
```cpp
#include
bool isDivisibleBy3(int number) { int sum = 0; while (number > 0) { sum += number % 10; number /= 10; } return (sum % 3 == 0); }
bool isDivisibleBy9(int number) { return (number % 9 == 0); }
int main() { int number; std::cout << "Введите число: "; std::cin >> number;
if (isDivisibleBy3(number)) { std::cout << "Число делится на 3" << std::endl; } else { std::cout << "Число не делится на 3" << std::endl; }
if (isDivisibleBy9(number)) { std::cout << "Число делится на 9" << std::endl; } else { std::cout << "Число не делится на 9" << std::endl; }
return 0; } ```
Эта программа сначала запрашивает у пользователя число, а затем проверяет его делимость на 3 и 9 с помощью функций `isDivisibleBy3` и `isDivisibleBy9`. Если число делится на соответствующее число без остатка, выводится сообщение "Число делится на 3" или "Число делится на 9". В противном случае выводится сообщение "Число не делится на 3" или "Число не делится на 9".
Примечание: В коде используется оператор `%`, который возвращает остаток от деления одного числа на другое. Также используется оператор `/`, который выполняет целочисленное деление.
Задача 2: Факторизация числа
Для написания программы, которая выполняет факторизацию числа, можно использовать различные алгоритмы. Один из таких алгоритмов - это алгоритм Ферма.
Алгоритм Ферма основан на следующем утверждении: если число N является составным и имеет делитель d, то существует такое целое число a, что a^2 - N = b^2, где b = sqrt(a^2 - N). Если a - b ≠ 1 и a + b ≠ N, то a - b и a + b являются делителями числа N.
Вот пример программы на языке C++, которая реализует алгоритм Ферма:
```cpp
#include
bool isPerfectSquare(long long number) { long long squareRoot = sqrt(number); return (squareRoot * squareRoot == number); }
void fermatFactorization(long long number) { if (number <= 1) { std::cout << "Число должно быть больше 1" << std::endl; return; }
if (isPerfectSquare(number)) { std::cout << "Число является квадратом простого числа" << std::endl; return; }
long long a = ceil(sqrt(number)); long long bSquare = a * a - number;
while (!isPerfectSquare(bSquare)) { a++; bSquare = a * a - number; }
long long factor1 = a - sqrt(bSquare); long long factor2 = a + sqrt(bSquare);
std::cout << "Факторизация числа " << number << ": " << factor1 << " * " << factor2 << std::endl; }
int main() { long long number; std::cout << "Введите число: "; std::cin >> number;
fermatFactorization(number);
return 0; } ```
Эта программа сначала запрашивает у пользователя число, а затем выполняет факторизацию числа с помощью функции `fermatFactorization`. Внутри функции используется алгоритм Ферма для поиска делителей числа. Если число является квадратом простого числа, выводится сообщение "Число является квадратом простого числа". В противном случае выводится факторизация числа в формате "Факторизация числа N: factor1 * factor2".
Примечание: В коде используется функция `sqrt`, которая вычисляет квадратный корень числа. Также используется функция `ceil`, которая округляет число вверх до ближайшего целого значения.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili