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

функции (вывести самое большое совершенное число) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 18:33     функции (вывести самое большое совершенное число) #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
30
31
32
33
34
#include <iostream>
#include <locale>
 
using namespace std;
 
int control(int t)
 
{
int sum=0;
for (int n=1;n<t; n++) {
    if (t%n==0) {
        sum+=n;
    }
}
return sum;
}
 
int main()
{setlocale(LC_CTYPE, "Russian");
int N,i=1,k=0,temp=0;
cout<<"ВВедите n:";
cin>>N;
for (i=0;i<N;i++) {
    cout<<"Введите число: ";
    cin>>temp;
    if (temp==control(temp))
    {
        cout<<"";
        k++;
    }
}
cout<<"кол-во  совершенных чисел="<<k<<endl;
    
return 0;}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 18:49     функции (вывести самое большое совершенное число) #2
Я правильно понимаю,
int N - сколько раз мы будем вводить числа для проверки на совершенство
temp - число, которое мы вводим для проверки на совершенство.
Кстати, в пределах до 1 000 000 000 000 существует всего 7 таких чисел:
6 28 496 8128 33550336 8589869056 137438691328
Это нужно все вручную перебирать?
Как звучит первоначальная задача?
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 18:59  [ТС]     функции (вывести самое большое совершенное число) #3
.Вводится последовательность из N целых чисел. Найти максимальное совершенное число в последовательности, если таких несколько, вывести их количество (функцией оформить проверку числа: результатом функции будет 1 – число совершенное, 0 - нет). (Совершенное число – это целое число, у которого сумма всех делителей, меньших его самого, равна этому числу).
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 19:09     функции (вывести самое большое совершенное число) #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
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
59
60
61
62
63
#include "stdafx.h"
#include <iostream>
using namespace std;
 
bool perfect(unsigned long);
void mnog(unsigned long);
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    unsigned long n;
    cout << "Введите диапазон поиска: ";
    cin >> n;
 
    for (unsigned long i = 1; i <= n; i++)
    {
        if (perfect(i) == true)
        {
            cout << "Совершенное число: ";
            mnog(i);
            
        }
    }
 
    system("pause");
    return 0;
}
 
 
bool perfect(unsigned long n)
{
    unsigned long sum = 0;
 
    for (unsigned long j = 1; j <= n / 2; j++)
    {
        if (n % j == 0)
            sum += j;
        
    }
 
    if (sum == n)
        return true;
    else
        return false;
 
}
 
 
void mnog(unsigned long a)
{
    for (unsigned long j = 1; j <= a / 2; j++)
    {
        if (a % j == 0 && j <= a / 2 - 1)
            cout << j << "+";
        if (a % j == 0 && j > a / 2 - 1)
            cout << j << "=" << a;  
        
    }
 
    cout << endl;
 
}
Результат:
Миниатюры
функции (вывести самое большое совершенное число)  
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 19:23  [ТС]     функции (вывести самое большое совершенное число) #5
нее надо из введенных чисел найти максимальное совершенное
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 20:13     функции (вывести самое большое совершенное число) #6
Цитата Сообщение от Ilona1993 Посмотреть сообщение
нее надо из введенных чисел найти максимальное совершенное
Кстати, в пределах до 1 000 000 000 000 существует всего 7 таких чисел:
6 28 496 8128 33550336 8589869056 137438691328
Это нужно все вручную перебирать?
А если ни одно из введенных чисел не является совершенным? Мой метод отличается лишь тем, что я последовательность N ввожу программно (от 1 до N), а не руками. Ну и вместо количества совершенных чисел выводятся сами эти числа.
З.Ы. Это только мое мнение, но все же... Предположим, что Вы не знаете первые 4 совершенных числа. Разве не глупо вручную вводить 8128 чисел для проверки?

Добавлено через 37 минут
Вот Ваш вариант. Добавил туда определение и вывод максимального, если совершенное число будет найдено. Но я по-прежнему считаю, что это максимум "3" с натяжкой (за старания).
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 <locale>
 
using namespace std;
 
int control(int t)
 
{
int sum=0;
for (int n=1;n<t; n++) {
    if (t%n==0) {
        sum+=n;
    }
}
return sum;
}
 
int main()
{setlocale(LC_CTYPE, "Russian");
int N,i=1,k=0,temp=0, max = 0;
cout<<"ВВедите n:";
cin>>N;
for (i=0;i<N;i++) {
    cout<<"Введите число: ";
    cin>>temp;
    if (temp==control(temp))
    {
        if (temp > max)
           max = temp;
        cout<<"";
        k++;
    }
}
cout<<"кол-во  совершенных чисел="<<k<<endl;
if (max > 0)
   cout<<"Максимальное совершенное число="<<max<<endl;
    
return 0;}
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:24  [ТС]     функции (вывести самое большое совершенное число) #7
спасибоя возьму на заметку)))а можешь еще одну задачу посмотреть я там немного запуталась
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 20:27     функции (вывести самое большое совершенное число) #8
Цитата Сообщение от Ilona1993 Посмотреть сообщение
спасибоя возьму на заметку)))а можешь еще одну задачу посмотреть я там немного запуталась
Показывай.
З.Ы. Убедительная просьба: не показывай преподавателю обе программы, выбери одну. Очевидно, что писались они 2-мя разными людьми.
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:41  [ТС]     функции (вывести самое большое совершенное число) #9
Мимино, По введенному номеру музыкальной ноты вывести ее словесное наименование. Например, 3 – ми.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Note 
{
    static const char* note[8];
 
public:
    static const char* GetNote(int idx) { 
        return (idx <= 8) ? note[idx-1] : ""; 
    }
};
 
const char* Note::note[8] = { "Do", "Re", "Mi", "Fa", "So", "La", "Si", "Do" };
 
int main()
{
 
    for (int i = 1; i < 10; ++i)
        std::cout << Note::GetNote(i) << ' ';
    std::cout << std::endl;
    return 0;
}
Добавлено через 2 минуты
а надо ввести номер и что бы вышла музыкальная нота....
henecs
 Аватар для henecs
16 / 16 / 0
Регистрация: 19.05.2013
Сообщений: 135
22.05.2013, 20:41     функции (вывести самое большое совершенное число) #10
Цитата Сообщение от Ilona1993 Посмотреть сообщение
По введенному номеру музыкальной ноты вывести ее словесное наименование
на форуме есть решение этой задачи
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:47  [ТС]     функции (вывести самое большое совершенное число) #11
Цитата Сообщение от henecs Посмотреть сообщение
на форуме есть решение этой задачи
так решение не до конца и я исправить не могу
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 20:56     функции (вывести самое большое совершенное число) #12
Цитата Сообщение от Ilona1993 Посмотреть сообщение
Мимино, По введенному номеру музыкальной ноты вывести ее словесное наименование. Например, 3 – ми.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Note 
{
    static const char* note[8];
 
public:
    static const char* GetNote(int idx) { 
        return (idx <= 8) ? note[idx-1] : ""; 
    }
};
 
const char* Note::note[8] = { "Do", "Re", "Mi", "Fa", "So", "La", "Si", "Do" };
 
int main()
{
 
    for (int i = 1; i < 10; ++i)
        std::cout << Note::GetNote(i) << ' ';
    std::cout << std::endl;
    return 0;
}
Добавлено через 2 минуты
а надо ввести номер и что бы вышла музыкальная нота....
Мммм... это так чтоли?
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
#include "stdafx.h"
#include <iostream>
class Note
{
static const char* note[8];
 
public:
static const char* GetNote(int idx) {
return (idx <= 8) ? note[idx-1] : "";
}
};
 
const char* Note::note[8] = { "Do", "Re", "Mi", "Fa", "Sol", "La", "Si", "Do" };
 
int main()
{
int number;
 
for (int i = 1; i < 9; ++i)
std::cout << Note::GetNote(i) << ' ';
std::cout << std::endl;
std::cout << "Enter note number: ";
std::cin >> number;
std::cout << "Note " << number << " is " << Note::GetNote(number) << std::endl; 
system("pause");
return 0;
}
Результат:
Миниатюры
функции (вывести самое большое совершенное число)  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 21:08     функции (вывести самое большое совершенное число)
Еще ссылки по теме:

С++: подсчитать количество знаков и вывести самое большое значение C++
C++ В массиве найти самое большое симметричное число
C++ Найти в массиве самое большое число и заменить его на 9

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

Или воспользуйтесь поиском по форуму:
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 21:08  [ТС]     функции (вывести самое большое совершенное число) #13
да ты мозг.....спасибо большое)))))
Yandex
Объявления
22.05.2013, 21:08     функции (вывести самое большое совершенное число)
Ответ Создать тему
Опции темы

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