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

Поиск совершенного числа в массиве - C++

Восстановить пароль Регистрация
 
 
Кротяка
 Аватар для Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 370
07.12.2013, 04:24     Поиск совершенного числа в массиве #1
Необходимо найти в массиве все совершенные числа в диапазоне от n1 до n2. Будем учитывать, что массив уже заполнен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    //задаём диапазон исследуемых элементов
    cout<<"Введите n1 = ";
    cin>>n1;
    cout<<"Введите n2 = ";
    cin>>n2;
 
    //находим совершенные числа
    int x;
    for(i = mas[n1]; i <= mas[n2]; n1++){
        x = i;
        for(j = 1; j < x; j++){
            if(x % j == 0)
                p+=j;
        }
        if(p == i)
            cout<< "Число " << i << " совершенное\n";
        p = 0;
    }
Программа работает неверно. Подскажите, в чём моя ошибка..?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кротяка
 Аватар для Кротяка
5 / 5 / 0
Регистрация: 20.12.2010
Сообщений: 370
09.12.2013, 18:34  [ТС]     Поиск совершенного числа в массиве #21
katsidelin, программа находит совершенные числа, работает правильно, спасибо. Но сообщение, что таких чисел нет до сих пор не выводится...вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//находим совершенные числа
    p = 0;
    f = false;
    for(i = n1; i <= n2; n1++){
        for(j = 1; j < mas[i]; j++){
            if(mas[i] % j == 0 && j != mas[i])
                p+=j;
        }
        if(p == mas[i] && mas[i] > 0){
            cout<< "Число " <<mas[i]<< " совершенное\n";
            f = true;
        }
        p = 0;
        i++;
    }
 
    if(f = false)
        cout<< "Совершенных чисел в данном диапазоне не существует\n";
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 18:41     Поиск совершенного числа в массиве
Еще ссылки по теме:

поиск числа в массиве типа int методом Фибоначчи C++
Поиск числа в символьном массиве C++
Поиск числа в массиве C++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.12.2013, 18:41     Поиск совершенного числа в массиве #22
Цитата Сообщение от Кротяка Посмотреть сообщение
Но сообщение, что таких чисел нет до сих пор не выводится...вот код:
см комментарии:
Цитата Сообщение от Кротяка Посмотреть сообщение
C++
1
2
if(f = false)// здесь нужно так: if(f==false) или так: if(!f)
 cout<< "Совершенных чисел в данном диапазоне не существует\n";
Yandex
Объявления
09.12.2013, 18:41     Поиск совершенного числа в массиве
Ответ Создать тему
Опции темы

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