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

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

Войти
Регистрация
Восстановить пароль
 
Юличка1
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 4
#1

нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ ) - C++

08.02.2014, 14:58. Просмотров 783. Ответов 6
Метки нет (Все метки)

Привет всем))) Помогите пожалуйста!
Разработать программу для нахождения всех совершенных чисел среди элементов целочисленного массива.Массив заполнить с помощью генератора случайных чисел.С++
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 14:58     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ )
Посмотрите здесь:

Среди элементов массива найти индексы всех таких, которые могут быть получены cуммированием двух элементов C++
C++ Нахождение всех совершенных чисел.
C++ Определить максимальный и минимальный элементы среди положительных нечетных элементов целочисленного массива Х
Нахождение всех чисел в массиве из 100 элементов, попадающих в заданный интервал C++
Программа для нахождения всех совершенных чисел до 5000 C++
C++ Дан файл целых чисел. айти среди этих чисел те, что больше за среднее арифметическое суммы всех элементов
Дан файл целых чисел которые упорядочены по убыванию. Среди этих чисел найти те что больше среднего арифметического суммы всех элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Чистый
08.02.2014, 15:22
  #2
 Комментарий модератора 

Тема перенесена из Qt
Chernobyl
211 / 211 / 67
Регистрация: 30.09.2012
Сообщений: 526
08.02.2014, 15:36     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ ) #3
Вот это напечатает, все совершенные числа от 6 до 100. На основании этого кода, можно выполнить задание, хотя вероятность того, что случайно сгенерированое число будет именно совершенным очень мала. (крайне мала )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdlib.h>
 
int main()
{
    for (int n = 6; n < 100; n++)
    {
        int sum = 0;
 
        for (int div = 1; div < n; div++)
        {
            if (n % div == 0)
                sum += div;
        }
 
        if (sum == n)
            std::cout << n << ' ';
    }
 
    system("PAUSE");
    return 0;
}
Добавлено через 10 минут
Если немного переработать, то вот функция которая определяет, есть ли число совершенным. Можно проверить этой функцией каждый элемент массива и как-то отреагировать, на появление совершенного числа.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bool beauty(int k)
{
    bool ans = false;
    int sum = 0;
 
        for (int div = 1; div < k; div++)
        {
            if (k % div == 0)
                sum += div;
        }
        if (sum == k) ans = true;
        return ans;
}
 
int main()
{       for (int n = 6; n < 9000; n++)
    {
        if (beauty(n))  cout << n << ' ';
    }
    system("PAUSE");
    return 0;
}
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
08.02.2014, 16:15     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ ) #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include<iostream>
#include<conio.h>
#include<windows.h>
#include <time.h>
 
using namespace std;
bool Perfect(int a);
 
void main()
{ 
int n,s(0);
cin>>n; 
int *a=new int[n];
srand( (unsigned)time( NULL ) );
for (int i=0; i<n;i++) a[i]=rand()%10000000;
for (int i=0; i<n;i++) if (Perfect(a[i])){ cout<<"Chislo: "<<a[i]<<" element massiva "<<i <<endl;s++;}
if (s==0) cout<<"Soverchenih chisel net";
getch();
 
}
 
bool Perfect(int a)
{
    bool ans=false;
    int s=0;
    if (a>1) for (int i=1;i<a;i++) s+=(a%i==0) ? i:0; 
    ans=(a==s);
    return ans;
}
Только n примерно 10000 выбирай, чтоб попасть))

Добавлено через 24 минуты
голова садовая delete []a; на 19 строчке забыл
Юличка1
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 4
11.02.2014, 15:00  [ТС]     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ ) #5
Всем привет !
Кто может помочь сделать курсовую работу по ТР ПП на тему: Разработать программу для нахождения всех совершенных чисел среди элементов целочисленного массива.Массив заполнить с помощью генератора случайных чисел.С++.
raxp
10147 / 6534 / 477
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
11.02.2014, 21:26     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ ) #6
Еще один клон, буду штрафовать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2014, 21:07     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ )
Еще ссылки по теме:

C++ Определение чисел среди элементов символьного массива
Нахождение наибольшего и наименьшего элементов целочисленного массива C++
C++ Среди отрицательных элементов целочисленного массива найти максимальный по модулю
C++ Написать программу по выводу всех совершенных чисел до заданного
C++ Нахождение суммы всех элементов массива и суммы первых 3-х элементов массива

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

Или воспользуйтесь поиском по форуму:
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
24.02.2014, 21:07     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ ) #7
Пожалуйста
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
35
36
37
38
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
const int NUMBER_OF_ELEMENTS_ALLOWED = 100;
 
void fulfillArray(int *numbersArray);
void detectPerfectNumber(int number);
 
int main()
{
    int numbersArray[NUMBER_OF_ELEMENTS_ALLOWED];
    fulfillArray(numbersArray);
    for(int i = 0; i < NUMBER_OF_ELEMENTS_ALLOWED; i++) {
        detectPerfectNumber(numbersArray[i]);
    }
 
    return 0;
}
 
void fulfillArray(int *numbersArray) {
    srand(time(NULL));
    for(int i = 0; i < NUMBER_OF_ELEMENTS_ALLOWED; i++) {
        numbersArray[i] = rand() % 1000000;
        cout << "\n" << "numbersArray[" << i << "] = " << numbersArray[i];
    }
}
 
void detectPerfectNumber(int number) {
    int numberMade = 0;
    for(int i = number - 1; i > 0; i--) {
        if(number % i == 0) numberMade += i;
    }
 
    if(number == numberMade) cout << "\n" << "number " << number << " is Perfect!";
}
Yandex
Объявления
24.02.2014, 21:07     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ )
Ответ Создать тему
Опции темы

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