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

совершенные числа С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.75
Crashman
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
24.02.2011, 17:21     совершенные числа С++ #1
Из заданного интервала натуральных чисел выбрать все числа, являющиеся совершенными и подсчитать их количество.
Интервал произвольный.
Вот как то задача есть, а идей нет... Если кто-нибудь знает как можно написать такую программу помогите пожалуйста.
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2011, 17:21     совершенные числа С++
Посмотрите здесь:

C++ совершенные числа
C++ Совершенные числа
C++ Совершенные числа.
C++ Совершенные числа.
Совершенные числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.02.2011, 17:26     совершенные числа С++ #2
C++
1
2
3
4
5
6
7
8
9
bool is_perfect(int num){
  int sum = 1;
  for (int i = 2; i <= number / 2; ++i)
    if ( !(number % i) )
      sum += i;
    if (sum == number)
        return true;   
    return false;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.02.2011, 17:46     совершенные числа С++ #3
Crashman, эх... Ну для кого, блин, поиск существует? Вчера (!) была почти такая же тема, и было предоставлено три варианта решения. Тут даже искать не надо было, на первой, максимум второй странице раздела тема валяется.
Crashman
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
24.02.2011, 17:52  [ТС]     совершенные числа С++ #4
так в том то и дело что видел я ту тему... но не нашел там того что мне нужно! задачи то разные...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.02.2011, 17:55     совершенные числа С++ #5
А, ну точно. Там интервал от нуля до P, а у вас от a до b. Совсем разные задачи.
Думать, видать, народ уже начисто разучился...
Neys
-1 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 14
10.04.2012, 13:45     совершенные числа С++ #6
Добрый день. Не могу сообразить, как лучше организовать проверку на "совершенство" с помощью рекурсии. Попробовал сделать так, как ниже, но этот вариант с "костылями" и много лишних вычислений выходит.

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
#include <iostream>
 
using namespace std;
 
bool is_perfect(int num, int lim)
{
    int sum = 0;
    for (int i = lim; i >= 1; i--)
        if (num % i == 0)
        {
            sum += i; 
            cout << sum << ' ';
            is_perfect(num, lim / 2);
        }
    return sum == num;   
}
 
void main()
{
    setlocale(0, "");
    int number;
    cout << "Введите число: ";
    cin >> number;
    if(is_perfect(number, number/2))
        cout << "Число совершенное." << endl;
    else
        cout << "Число совершенным не является." << endl;
}
Yandex
Объявления
10.04.2012, 13:45     совершенные числа С++
Ответ Создать тему
Опции темы

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