Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108

Программа для отыскания заданного количества пар дружественных чисел

03.10.2010, 13:30. Показов 5808. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Два числа называют дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа. Например, 220 и 284 есть дружественные числа, так как делителями первого являются числа 1 2 4 5 10 11 20 22 44 55 110, сумма которых равно 284, а делителями второго - числа 1 2 4 71 142, которые в сумме дают 220. Напишите программу для отыскания заданного количества пар дружественных чисел.

Помогите решить.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.10.2010, 13:30
Ответы с готовыми решениями:

Нахождение пар дружественных чисел
Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого (само другое число в качестве...

Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных чисел
Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных чисел. (Два натуральных числа называются...

Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных чисел
Напишите пожалуйста простой код на с++ вот условие Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных...

32
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
03.10.2010, 15:02
Что уже написал ?
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
03.10.2010, 15:04  [ТС]
препод в универе сказала, что сначала напиши как бы 1 часть, просто прогу, чтобы находила делители числа, а потом уже последовательно написать и общую прогу, ну я захотел сачкануть и слить с инета, но нигде не нашел подобных и решил создать тему
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.10.2010, 15:48
OffSide, а 12 и 16 не являются дружественными?
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
03.10.2010, 15:49  [ТС]
Цитата Сообщение от PointsEqual Посмотреть сообщение
OffSide, а 12 и 16 не являются дружественными?

являются)) нужно программу составить)))
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.10.2010, 15:51
тогда вариант простым перебором
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
#include <iostream>
 
/*
Два числа называют дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа.
Например, 220 и 284 есть дружественные числа, так как делителями первого являются числа 1 2 4 5 10 11 20 22 44 55 110, сумма которых
равна 284, а делителями второго - числа 1 2 4 71 142, которые в сумме дают 220.
Напишите программу для отыскания заданного количества пар дружественных чисел.
*/
 
bool isfriendly(int x, int y){
    int sx = 0;
    for (int i = 1; i < x; ++i)
        if ( !(x % i) )
            sx += i;
 
    return ( sx == y ) ? true : false;
}
 
 
 
int main()
{
    int cnt = 50; //первые 50
 
    int i = 2;
    while (cnt){
        int j = 1;
        while( j < i ){
            if (isfriendly(j,i)){
                --cnt;
                std::cout << j <<"," << i << std::endl;
            }
            ++j;
        }
        ++i;
    }
 
    return 0;
}
1
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
03.10.2010, 15:57  [ТС]
все ништяк было бы)) если я не был бы первокурсником своего универа, и не начинал после школьного паскаля, переучиваться на С)) поэтому мы начинаем вписывать проги с шаблонов, вводя все подряд))
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.10.2010, 16:01
Цитата Сообщение от OffSide Посмотреть сообщение
все ништяк было бы)) если я не был бы первокурсником своего универа, и не начинал после школьного паскаля, переучиваться на С)) поэтому мы начинаем вписывать проги с шаблонов, вводя все подряд))
а вопрос то в чем, что еще надо сделать?
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
03.10.2010, 16:05  [ТС]
Цитата Сообщение от PointsEqual Посмотреть сообщение
а вопрос то в чем, что еще надо сделать?
ни в чем, просто препод нифига не поверит, что я смог составить такую прогу , таким способом) да и еще она сказала, что эта задача мне досталась самая сложная из всех по теме "Цикличность" и что её ни 1 первак не сделал сам
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.10.2010, 16:07
Цитата Сообщение от OffSide Посмотреть сообщение
таким способом)
а каким составляете?
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
03.10.2010, 16:09
PointsEqual, вот так надо бы:
C++
1
 if (isfriendly(j,i) && isfriendly(i,j)){
Добавлено через 33 секунды
и вот так:
C++
1
return sx == y;
1
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.10.2010, 16:17
Цитата Сообщение от Хохол Посмотреть сообщение
return sx == y;
не первый раз на этом случае)
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
03.10.2010, 16:23  [ТС]
ну например:
Задача: Точка задана своими координатами (x,y). Опредедитель, попадает ли точка в круг радиуса R, центр которого расположен в начале координат. Считать, что окружность принадлежит кругу.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <math.h>
float x,y,Rt,R;
void main ()
   { // Ввод исходных данных
     printf ("/nВведите координаты точки n/")
     printf ("x="); scanf ("%f", &x);
     printf ("y="); scanf ("%f", &y);
     printf ("/n Введите радиус круга - ");
     scanf ("%f", &R);
     Rt=hypot (x,y);    //Rt^2=x^2+y^2
     if (Rt<=R)            //Вывод результатов
      { printf ("/nТочка (%5.2f,%5.2f) лежит"
       "внутри круга радиуса %5.2f /n", x,y,R);
       }
     else
       {printf("/nТочка (%5.2f,%5.2f) не принадлежит"
       "кругу радиуса %5.2f /n",x,y,R);
       }
   }
мы пишем просто, как начинающие)
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
03.10.2010, 16:26
И начинающим неплохо бы учиться сразу писать int main() ... return 0; и не создавать глобальных переменных...
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
03.10.2010, 16:28  [ТС]
Цитата Сообщение от silent_1991 Посмотреть сообщение
И начинающим неплохо бы учиться сразу писать int main() ... return 0; и не создавать глобальных переменных...
как учат, так и прописываем
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.10.2010, 16:30
Цитата Сообщение от OffSide Посмотреть сообщение
мы пишем просто, как начинающие)
там просто ввод есть, вот там все и расписано, вот немного упрсотил может быть

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
#include <iostream>
 
/*
Два числа называют дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа.
Например, 220 и 284 есть дружественные числа, так как делителями первого являются числа 1 2 4 5 10 11 20 22 44 55 110, сумма которых
равна 284, а делителями второго - числа 1 2 4 71 142, которые в сумме дают 220.
Напишите программу для отыскания заданного количества пар дружественных чисел.
*/
 
bool isfriendly(int x, int y){
    int sx = 0;
    for (int i = 1; i < x; ++i)
        if ( (x % i) == 0 )
            sx = sx + i;
 
    if ( sx == y )
        return true;
    else
        return false;
}
 
 
 
int main()
{
    int cnt = 5; //первые 5
 
    int i = 2;
    while (cnt){
        int j = 1;
        while( j < i ){
            if (isfriendly(j,i) !=0 && isfriendly(i,j)  !=0){
                --cnt;
                std::cout << j <<"," << i << std::endl;
            }
            ++j;
        }
        ++i;
    }
 
    return 0;
}
+исправь 32 строку
кстати это с++
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
03.10.2010, 16:30
Цитата Сообщение от OffSide Посмотреть сообщение
как учат, так и прописываем
Хреново учат. Прислушайтесь к словам silent_1991.
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
03.10.2010, 16:33
C++
1
if (isfriendly(j,i) !=0 && isfriendly(i,j)  !=0)
Ну а с нулем-то зачем сравнивать?
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
03.10.2010, 16:34
Цитата Сообщение от Хохол Посмотреть сообщение
Ну а с нулем-то зачем сравнивать?
хотел чтобы было понятней, и у OffSide приняли программу
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
03.10.2010, 16:38  [ТС]
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Хреново учат. Прислушайтесь к словам silent_1991.
хорошо, щас скачал книгу Харви Дейтел, Пол Дейтел "КАК ПРОГРАММИРОВАТЬ НА C++ " говорят, норм для начинающих..

Добавлено через 4 минуты
Цитата Сообщение от PointsEqual Посмотреть сообщение
хотел чтобы было понятней, и у OffSide приняли программу
спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2010, 16:38
Помогаю со студенческими работами здесь

Программа для подсчета общего количества слов во введенной строке, а также количества целых чисел среди них
Помогите, пожалуйста, написать программу для подсчета общего количества слов во введенной строке, а также количества целых чисел среди...

Найти все пары дружественных чисел, которые не больше заданного К
Ввести в память машины с клавиатуры натуральное число К. Найти все пары дружественных чисел, которые не больше заданного К. Два натуральных...

Найти все пары дружественных чисел, не превосходящих заданного числа
Два натуральных числа называются &quot;дружественными&quot;, если каждое из них равно сумме всех делителей другого, за исключением его самого...

Найти все пары натуральных дружественных чисел, меньших заданного
Привет, помогите с задачкой. Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого...

Найти все пары дружественных чисел, не превосходящих заданного натурального числа N
Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа. Найти все...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru