Форум программистов, компьютерный форум CyberForum.ru

Определить, содержит ли последовательность хотя бы одно совершенное число - C++

Восстановить пароль Регистрация
 
Dimaskorik
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 28
29.09.2010, 08:39     Определить, содержит ли последовательность хотя бы одно совершенное число #1
Вводится последовательность целых чисел, 0 - конец последовательности. Определить, содержит ли последовательность хотя бы одно совер¬шенное число. Для определения совершенного числа создать функцию. Число называется совершенным, если сумма всех делителей, меньших его самого, равна этому числу.

Никаких мыслей у меня нет по реализации, просьба помочь)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2010, 08:39     Определить, содержит ли последовательность хотя бы одно совершенное число
Посмотрите здесь:

C++ Определить, содержит ли последовательность хотя бы одно простое число
Определить содержит ли последовательность хотя бы два рядом стоящих положительных числа C++
C++ содержит ли последовательность хотя бы два соседних числа с одинаковыми знаками.
C++ Дан массив из N целых чисел. Выяснить имеется ли в массиве хотя бы одно нечетное отрицательное число и определить его местонахождение в массиве
Вводится последовательность целых чисел,0 –конец последовательности. Определить, содержит ли последовательность хотя бы три отрицательных четных числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.09.2010, 08:57     Определить, содержит ли последовательность хотя бы одно совершенное число #2
совершенное число

Добавлено через 1 минуту
сначала напиши без ввода, просто заранее задаёшь цифры
видимо это массив поначалу, который в цикле прокручивается и каждый элемент подаётся на функцию

Добавлено через 1 минуту
делится ли число 7 на 5, к примеру, как узнать:

C
1
2
3
4
    if (7 % 5 == 0)
        printf("yes" "\n")
    else
        printf("no" "\n")
Добавлено через 6 минут
задание массива для написания функции:

C
1
2
3
4
5
6
7
8
9
    int nums[100] = { 1, 2, 3, 7, 6, 30, 28, 29 };
    int i, size = 9;
    int n;
 
    for (i = 0; i < size; i++) {
        n = nums[i];
        if (is_perf(n))
            print("%d is perfective" "\n", n);
    }
Добавлено через 1 минуту
прототип функции:

C
1
int is_perf(int num);
Dimaskorik
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 28
29.09.2010, 09:14  [ТС]     Определить, содержит ли последовательность хотя бы одно совершенное число #3
Спасибо, но отрывками непонятно как-то
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.09.2010, 09:57     Определить, содержит ли последовательность хотя бы одно совершенное число #4
делитель числа - это такое число, на которое число делится
каждый делитель числа, если он делитель, нужно прибавлять через +=
только последний не прибавлять, так как последний - это само число
и потом, если сумма получилась равной самому числу, вернуть 1, а если все делители рассмотрены, сумма получена, а она числу не равна, то вернуть 0

Добавлено через 2 минуты
функцию main() написал ?
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
29.09.2010, 10:00     Определить, содержит ли последовательность хотя бы одно совершенное число #5
Я тут накатал по-своему по-нубовски:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using namespace std;
 
bool is_perfect(int n);
 
int main()
{
    int n;
    cin >> n;
    if(is_perfect(n)) cout << n << " is perfect.";
    else
        cout << n << " is not perfect.";
    system("pause");
}
 
bool is_perfect(int n)
{
    int * buf = new int[n/2];
    int index = 0;
    for(int i = 1;i <= n/2;++i)
    {
        if(n % i == 0){ buf[index] = i;
index++;
        }
    }
int sum = 0;
for(int i = 0;i < index;++i)
sum += buf[i];
delete [] buf;
if(sum == n) return true;
else
return false;
 
}
Добавлено через 2 минуты
мучают бедных студентов ненужным им программированием
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.09.2010, 10:03     Определить, содержит ли последовательность хотя бы одно совершенное число #6
можно без массивов, в цикле сразу проверять и, если делитель, прибавлять
последний делитель не прибавлять

про половину не задумывался, думал проверять все числа
Yandex
Объявления
29.09.2010, 10:03     Определить, содержит ли последовательность хотя бы одно совершенное число
Ответ Создать тему
Опции темы

Текущее время: 17:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru