Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
1

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

22.05.2013, 18:33. Просмотров 2240. Ответов 12
Метки нет (Все метки)

помогите....надо вывести самое большое совершенное число............
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;}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 18:33
Ответы с готовыми решениями:

Вывести самое большое четырёхзначное число из цифр заданного
Условие в заголовке. Заранее спасибо))

Из 12 положительных чисел, найти самое большое число и вывести его порядковый номер
Входной файл: input.txt Выходной файл: output.txt Женя купила 12 яблок и...

Найти самое большое и самое маленькое число в матрице
нужно найти из этой матрицы само большое и самое маленькое число пожалуйста с...

Найти самое большое число
У меня токой вопрос: Есьт 3 числа, найти самое большое. Как это сделать?...

Найти самое большое число
Всем доброго дня. У меня токой вопрос: Есьт 4 числа допустим int a =...

12
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 1
22.05.2013, 18:49 2
Я правильно понимаю,
int N - сколько раз мы будем вводить числа для проверки на совершенство
temp - число, которое мы вводим для проверки на совершенство.
Кстати, в пределах до 1 000 000 000 000 существует всего 7 таких чисел:
6 28 496 8128 33550336 8589869056 137438691328
Это нужно все вручную перебирать?
Как звучит первоначальная задача?
0
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 18:59  [ТС] 3
.Вводится последовательность из N целых чисел. Найти максимальное совершенное число в последовательности, если таких несколько, вывести их количество (функцией оформить проверку числа: результатом функции будет 1 – число совершенное, 0 - нет). (Совершенное число – это целое число, у которого сумма всех делителей, меньших его самого, равна этому числу).
0
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 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;
 
}
Результат:
1
Миниатюры
функции (вывести самое большое совершенное число)  
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 19:23  [ТС] 5
нее надо из введенных чисел найти максимальное совершенное
0
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 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;}
1
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:24  [ТС] 7
спасибоя возьму на заметку)))а можешь еще одну задачу посмотреть я там немного запуталась
0
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 1
22.05.2013, 20:27 8
Цитата Сообщение от Ilona1993 Посмотреть сообщение
спасибоя возьму на заметку)))а можешь еще одну задачу посмотреть я там немного запуталась
Показывай.
З.Ы. Убедительная просьба: не показывай преподавателю обе программы, выбери одну. Очевидно, что писались они 2-мя разными людьми.
0
Ilona1993
1 / 1 / 1
Регистрация: 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 минуты
а надо ввести номер и что бы вышла музыкальная нота....
1
henecs
18 / 18 / 11
Регистрация: 19.05.2013
Сообщений: 135
22.05.2013, 20:41 10
Цитата Сообщение от Ilona1993 Посмотреть сообщение
По введенному номеру музыкальной ноты вывести ее словесное наименование
на форуме есть решение этой задачи
0
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:47  [ТС] 11
Цитата Сообщение от henecs Посмотреть сообщение
на форуме есть решение этой задачи
так решение не до конца и я исправить не могу
0
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 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;
}
Результат:
1
Миниатюры
функции (вывести самое большое совершенное число)  
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 21:08  [ТС] 13
да ты мозг.....спасибо большое)))))
0
22.05.2013, 21:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 21:08

В массиве найти самое большое симметричное число
Здравствуйте! Помогите, пожалуйста, с задачей: в целочисленном массиве найти...

Одномерные массивы - самое большое по модулю число
Доброе время суток! Ребята, задачка такая интересная, что крышу срывает!!! ...

Найти самое большое нечётное число в двухмерном массиве
Пользователь вводит массив 3х3. Программа находит самое большое нечётное число...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru