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

Вывести на экран первые пять совершенных чисел - C++

Восстановить пароль Регистрация
 
KattyBelka
0 / 0 / 0
Регистрация: 26.04.2013
Сообщений: 10
26.04.2013, 19:41     Вывести на экран первые пять совершенных чисел #1
Помогите пожалуйста с программой.
32. Вывести на экран первые пять совершенных чисел (функция возвращает 1, если число совершенное, 0 – в противном случаем).

Я попыталась сама сделать, но у меня не запускается (пишет что main.cpp(7): error C3861: delit: идентификатор не найден).
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
#include <iostream>
#include <math.h>
using namespace std; 
int sover(int a)
{
    int n,x,p;
    p=delit(n);
    for (n=2; n<=20000;n++ )
    {
        if (n%2==0)
            {
                if (n==p)
                    x=n;
            }
    }
            return (x);
}
int delit(int n)
{
    int t=0;
    for ( int i = 1; i < n; i ++ )
    {
        if ( n % i == 0 )  // если делится без остатка
            t+=i;
    }
    return (t);
}
int main()
{
int a;
cout<<sover(a)<<"\n";
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 19:41     Вывести на экран первые пять совершенных чисел
Посмотрите здесь:

Ввести пять строк и из каждой строки вывести пять последних символа C++
вывести первые n слов на экран C++
C++ Вывести на экран первые 10 четных элементов массива
Вывести первые двадцать чисел C++
C++ Вывести первые 100 чисел Фиббоначи
C++ Вывести на экран первые 20 чисел Фибоначчи.
C++ Вывести первые 10 чисел
Вывести на экран первые сто простых чисел, пропуская каждое второе C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
26.04.2013, 22:03     Вывести на экран первые пять совершенных чисел #2
KattyBelka, прототип функции добавьте.

Добавлено через 2 часа 1 минуту
На скорую руку накидал такой вариант.
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
long long int sumDivisors( long long int n ){
    long long int sum = 0;
    if( n%10 == 6 || n%10 == 8 ){
        for( long long int i = 1; i<=n/2; i++){
            if( n%i == 0 ){
                sum+=i;
            };
        };
    };
    return sum;
}
 
bool compare( long long int n, long long int sumDivisors){
    if( n == sumDivisors ){ return true; };
    return false;
}
 
int main(){
    for( long long int i = 1, j = 0; j<1; i++){
        if( compare( i, sumDivisors(i) ) ){
        printf("%d\n", i); j++; };
    }
    
    int sum = 0;
    for( long long int i = 1, j = 0; j<4; i+=2){
        if( compare( sum+=i*i*i, sumDivisors(sum) ) ){ printf("%d\n", sum); j++; };
    }
    return 0;
}
Yandex
Объявления
26.04.2013, 22:03     Вывести на экран первые пять совершенных чисел
Ответ Создать тему
Опции темы

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