Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Програмированние С++ Помогите

Сергей Анфилофьев Ученик (84), на голосовании 5 месяцев назад
Дано натуральное число N. Составить функцию, возвращающую True, если число является совершенным и False – в противном случае. Совершенное число N равно сумме всех своих делителей, не превосходящих само N (28=1+2+4+7+14) на С++
Голосование за лучший ответ
альберт кагиев Ученик (239) 6 месяцев назад
Вот пример функции на C++, которая определяет является ли данное число совершенным:

#include <iostream>

bool isPerfect(int n) {
int sum_of_divisors = 0;
for (int i = 1; i <= n / 2; i++) {
if (n % i == 0) {
sum_of_divisors += i;
}
}
return sum_of_divisors == n;
}

int main() {
int number;
std::cout << "Введите число: ";
std::cin >> number;

if (isPerfect(number)) {
std::cout << "True";
} else {
std::cout << "False";
}

return 0;
}


Эта программа использует функцию isPerfect, которая считает сумму всех делителей числа n, кроме самого числа n, и затем проверяет, равна ли эта сумма самому числу n. В функции main пользователь вводит число, а затем программа вызывает функцию isPerfect и выводит "True", если число совершенное, и "False" в противном случае.
Сергей АнфилофьевУченик (84) 6 месяцев назад
я работаю в старой программе codeblock она bool isPerfect(int n) эту функцию как ошибку выдает
можно как то без нее сделать
или по другому как либо ?
Сергей Анфилофьев, почитай на досуге, может, отпадёт охота велосипеды изобретать: https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE
GGG Просветленный (36202) 6 месяцев назад
 #include  

using namespace std;

int main() {
int M, N, K;

// Ввод размеров матрицы и номера столбца
cout << "Введите количество строк матрицы (M): ";
cin >> M;
cout << "Введите количество столбцов матрицы (N): ";
cin >> N;
cout << "Введите номер столбца (K): ";
cin >> K;

// Проверка корректности номера столбца
if (K < 1 || K > N) {
cout << "Некорректный номер столбца!" << endl;
return 1;
}

// Создание матрицы
int matrix[M][N];

// Ввод элементов матрицы
cout << "Введите элементы матрицы:" << endl;
for (int i = 0; i < M; ++i) {
for (int j = 0; j < N; ++j) {
cin >> matrix[i][j];
}
}

// Вычисление суммы и произведения элементов K-го столбца
int sum = 0;
long long product = 1; // Используем long long для предотвращения переполнения
for (int i = 0; i < M; ++i) {
sum += matrix[i][K - 1];
product *= matrix[i][K - 1];
}

// Вывод результатов
cout << "Сумма элементов " << K << "-го столбца: " << sum << endl;
cout << "Произведение элементов " << K << "-го столбца: " << product << endl;

return 0;
}
или
 #include  

using namespace std;

int main() {
int M, N, K;

// Ввод размеров матрицы и номера столбца
cout << "Введите количество строк матрицы (M): ";
cin >> M;
cout << "Введите количество столбцов матрицы (N): ";
cin >> N;
cout << "Введите номер столбца (K): ";
cin >> K;

// Проверка корректности номера столбца
if (K < 1 || K > N) {
cout << "Некорректный номер столбца!" << endl;
return 1;
}

// Создание матрицы
int matrix[M][N];

// Ввод элементов матрицы
cout << "Введите элементы матрицы:" << endl;
for (int i = 0; i < M; ++i) {
for (int j = 0; j < N; ++j) {
cin >> matrix[i][j];
}
}

// Вычисление суммы и произведения элементов K-го столбца
int sum = 0;
long long product = 1; // Используем long long для предотвращения переполнения
for (int i = 0; i < M; ++i) {
sum += matrix[i][K - 1];
product *= matrix[i][K - 1];
}

// Вывод результатов
cout << "Сумма элементов " << K << "-го столбца: " << sum << endl;
cout << "Произведение элементов " << K << "-го столбца: " << product << endl;

return 0;
}
Похожие вопросы