Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Crashman
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
#1

Из заданного интервала натуральных чисел выбрать все совершенные числа - C++

24.02.2011, 17:21. Просмотров 5058. Ответов 6
Метки нет (Все метки)

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

Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных чисел - C++
Напишите пожалуйста простой код на с++ вот условие Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных...

Из заданного интервала натуральных чисел определить все простые числа - C++
из заданного интервала натуральных чисел определить все простые числа

Из заданного интервала натуральных чисел определить все простые числа - C++
Завтра сдавать, помогите создать, кто что сможет, буду очень благодарна ... 2 Заданы числа А,В,C,D. Выяснить можно ли прямоугольник со...

Определить все пары "близнецов" из заданного интервала натуральных чисел - C++
Помогите написать простой код на с++. Условие: Два простых числа называются "близнецами", если они отличаются друг от друга на 2...

Определить все пары "близнецов" из заданного интервала натуральных чисел - C++
Два простых числа называются "близнецами", если они отличаются друг от друга на 2( Например 22 и 24, 47 и 49, 13 и 17 и т.д) Определить все...

из заданного интервала натуральных чисел определить простые - C++
{ setlocale(LC_ALL,"Russian"); int a,b; cout<<"ПРОГРАММА, ОПРЕДЕЛЯЮЩАЯ ВСЕ ПРОСТЫЕ ЧИСЛА ИЗ ИНТЕРВАЛА НАТУРАЛЬНЫХ"<<endl<<endl; ...

6
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
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;
}
1
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
24.02.2011, 17:46 #3
Crashman, эх... Ну для кого, блин, поиск существует? Вчера (!) была почти такая же тема, и было предоставлено три варианта решения. Тут даже искать не надо было, на первой, максимум второй странице раздела тема валяется.
0
Crashman
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
24.02.2011, 17:52  [ТС] #4
так в том то и дело что видел я ту тему... но не нашел там того что мне нужно! задачи то разные...
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
24.02.2011, 17:55 #5
А, ну точно. Там интервал от нуля до P, а у вас от a до b. Совсем разные задачи.
Думать, видать, народ уже начисто разучился...
2
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;
}
0
DumkinVD
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 8
Завершенные тесты: 3
08.12.2016, 18:46 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
bool perfect(int n) {
    int sum = 0;
    for (int i = 1; i <= n / 2; i++)
        sum += n % i == 0 ? i : 0;
    return (n == sum) && (n != 0) ? true : false;
}
 
int main() {
    for (int i = 0; i <= 10000; i++){
        if(perfect(i))
            cout << i << " - perfect" << endl;
    }
    return 0;
}
0
08.12.2016, 18:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2016, 18:46
Привет! Вот еще темы с ответами:

Вывести все представления заданного натурального числа суммой натуральных чисел - C++
Задача: Вывести все представления натурального числа N суммой натуральных чисел. Пример: Ввод: 4 Вывод: 1+1+1+1 1+2+1 1+3

Для заданного натурального числа N вывести в столбик все совершенные числа меньшие N c++ - C++
Для заданного натурального числа N вывести в столбик все совершенные числа меньшие N. Совершенное число – натуральное число, которое равно...

Найти все совершенные числа, меньшие заданного - C++
Натуральное число называется совершенным, если оно равно сумме своих делителей, включая 1 и, естественно, исключая это самое число....

Найти все совершенные числа меньшие заданного - C++
Натуральное число называется совершенным, если оно равно сумме своих делителей, включая 1 и, естественно, исключая это самое число....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.