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

Совершенные функции - C++

Восстановить пароль Регистрация
 
Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
17.06.2013, 18:52     Совершенные функции #1
Говорят, что целое число является совершенным числом, если его сомножители, включая 1 (но не само число) в сумме дают это число. Например, 6 – совершенное число, так
как 6=1+2+3. Напишите функцию bool f(int n), которая определяет, является ли ее параметр n совершенным числом. Используйте эту функцию в программе, которая определяет и
печатает все совершенные числа в диапазоне от 1 до 1000.

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <iomanip>
#include <conio.h>
 
using namespace std;
bool f(int n);
bool f1(int n);
 
void main (void)
{setlocale(0,"Russian");
int i, c, sum;
cout<<endl<<"Введите число: ";
cin>>c;
sum=0;
int b;
for(i=1;i<c;i++)
 {
     if(c%i==0)
     {
         sum=sum+i;
     }
 }
if(c==sum)
      {
      cout<<endl<<"Число совершенное!";
      }
else
      {
          cout<<endl<<"Число НЕ является совершенным";
      }
 
cout<<endl<<endl <<"Все совершенные чисел от 1 до 1000:"<<endl;
for (i=1; i<1001; i++)
{ b=i;}
f1 (b);
getch();
}
 bool f1(int n) {
     int nachalo=1;
     int konec=1001;
     int summa=0;
     int i;
     for( i=nachalo;i<konec;i++)
 {   n=i;
     if(n%i==0)
     { summa=summa+i;}
     if (n==summa)
     cout<<n<<" ";
  }
return 0 ;
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 18:52     Совершенные функции
Посмотрите здесь:

C++ совершенные числа С++
C++ Совершенные числа.
C++ Совершенные числа.
Совершенные числа C++
C++ Совершенные числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
17.06.2013, 18:54
  #2

Не по теме:

была эта задача десятки раз, по форуму порыскайте. наверняка у Croessmah подобный сборник имеется))

Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
17.06.2013, 18:57  [ТС]     Совершенные функции #3
Цитата Сообщение от Thinker Посмотреть сообщение
была эта задача десятки раз
это я щас сам написал, она работает, вот только одно число выводит, почему, объяснения нужны... не стал бы выкладывать((
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.06.2013, 18:59     Совершенные функции #4
сумму внутри цикла обнуляйте и все делители нужно пробежать
Croessmah
17.06.2013, 19:01
  #5

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
была эта задача десятки раз, по форуму порыскайте. наверняка у Croessmah подобный сборник имеется))
нет, нету такого сборника я ж только самые надоедливые скапливаю

Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
17.06.2013, 19:02  [ТС]     Совершенные функции #6
Цитата Сообщение от Thinker Посмотреть сообщение
все делители нужно пробежать
цикл в цикле?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.06.2013, 19:07     Совершенные функции #7
Serega_094, либо цикл в цикле, либо вызывать функцию.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2013, 19:26     Совершенные функции
Еще ссылки по теме:

Совершенные числа C++
Функции. Получить все совершенные числа меньше заданного C++

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

Или воспользуйтесь поиском по форуму:
Serega_094
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 80
17.06.2013, 19:26  [ТС]     Совершенные функции #8
пытаюсь с циклом в цикле разобраться...с функциями только седня разобрался, пару простеньких прог написал, тут зациклился

Добавлено через 2 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
была эта задача десятки раз
подскажи куда че добавить, пожалуйста...

Добавлено через 14 минут
нашел ошибку, выводит все:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <iomanip>
#include <conio.h>
 
using namespace std;
bool f(int n);
bool f1(int n);
 
void main (void)
{setlocale(0,"Russian");
int i, c, sum;
cout<<endl<<"Введите число: ";
cin>>c;
sum=0;
int b;
for(i=1;i<c;i++)
 {
     if(c%i==0)
     {
         sum=sum+i;
     }
 }
if(c==sum)
      {
      cout<<endl<<"Число совершенное!";
      }
else
      {
          cout<<endl<<"Число НЕ является совершенным";
      }
 
cout<<endl<<endl <<"Все совершенные чисел от 1 до 1000:"<<endl;
for (i=1; i<1001; i++)
{ b=i;}
f1 (b);
getch();
}
 bool f1(int n) {
     int nachalo=1;
     int konec=1001;
     int summa=0;
     int i;
    
     for( i=nachalo;i<konec;i++)
 {   n=i;
     summa = 0;
     for (int k=1; k<n; k++)
             if (i%k==0){
             summa=summa+k;}
     
if (n==summa)
    cout<<n<<" "; 
     }
     
return 0 ;
 }
Yandex
Объявления
17.06.2013, 19:26     Совершенные функции
Ответ Создать тему
Опции темы

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