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

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

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

C++ Нахождение всех совершенных чисел.
C++ Определить максимальный и минимальный элементы среди положительных нечетных элементов целочисленного массива Х
[C++] Нахождение всех чисел в массиве из 100 элементов попадающих в заданный интервал C++
Программа для нахождения всех совершенных чисел до 5000 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
10140 / 6527 / 475
Регистрация: 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++

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

Или воспользуйтесь поиском по форуму:
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     нахождение всех совершенных чисел среди элементов целочисленного массива ( С++ )
Ответ Создать тему
Опции темы

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