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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
#1

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

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

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

Помогите решить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2010, 13:30     Программа для отыскания заданного количества пар дружественных чисел
Посмотрите здесь:

Нахождение пар чисел равныхпроизведению заданного числа( одномерный массив) C++
C++ Программа для поиска пар взаимно-простых натуральных чисел на определенном промежутке.
Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар C++
C++ Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар.
C++ Дан одномерный массив из M × N целых чисел. Составить программу определения количества повторений заданного элементаx
C++ Дан одномерный массив из M × N целых чисел. Составить программу определения количества повторений заданного элементаx.
C++ Найти все пары дружественных чисел, не превосходящих заданного натурального числа N
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
03.10.2010, 15:02     Программа для отыскания заданного количества пар дружественных чисел #2
Что уже написал ?
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
03.10.2010, 15:04  [ТС]     Программа для отыскания заданного количества пар дружественных чисел #3
препод в универе сказала, что сначала напиши как бы 1 часть, просто прогу, чтобы находила делители числа, а потом уже последовательно написать и общую прогу, ну я захотел сачкануть и слить с инета, но нигде не нашел подобных и решил создать тему
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.10.2010, 15:48     Программа для отыскания заданного количества пар дружественных чисел #4
OffSide, а 12 и 16 не являются дружественными?
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
03.10.2010, 15:49  [ТС]     Программа для отыскания заданного количества пар дружественных чисел #5
Цитата Сообщение от PointsEqual Посмотреть сообщение
OffSide, а 12 и 16 не являются дружественными?

являются)) нужно программу составить)))
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.10.2010, 15:51     Программа для отыскания заданного количества пар дружественных чисел #6
тогда вариант простым перебором
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;
}
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
03.10.2010, 15:57  [ТС]     Программа для отыскания заданного количества пар дружественных чисел #7
все ништяк было бы)) если я не был бы первокурсником своего универа, и не начинал после школьного паскаля, переучиваться на С)) поэтому мы начинаем вписывать проги с шаблонов, вводя все подряд))
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.10.2010, 16:01     Программа для отыскания заданного количества пар дружественных чисел #8
Цитата Сообщение от OffSide Посмотреть сообщение
все ништяк было бы)) если я не был бы первокурсником своего универа, и не начинал после школьного паскаля, переучиваться на С)) поэтому мы начинаем вписывать проги с шаблонов, вводя все подряд))
а вопрос то в чем, что еще надо сделать?
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
03.10.2010, 16:05  [ТС]     Программа для отыскания заданного количества пар дружественных чисел #9
Цитата Сообщение от PointsEqual Посмотреть сообщение
а вопрос то в чем, что еще надо сделать?
ни в чем, просто препод нифига не поверит, что я смог составить такую прогу , таким способом) да и еще она сказала, что эта задача мне досталась самая сложная из всех по теме "Цикличность" и что её ни 1 первак не сделал сам
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.10.2010, 16:07     Программа для отыскания заданного количества пар дружественных чисел #10
Цитата Сообщение от OffSide Посмотреть сообщение
таким способом)
а каким составляете?
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
03.10.2010, 16:09     Программа для отыскания заданного количества пар дружественных чисел #11
PointsEqual, вот так надо бы:
C++
1
 if (isfriendly(j,i) && isfriendly(i,j)){
Добавлено через 33 секунды
и вот так:
C++
1
return sx == y;
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.10.2010, 16:17     Программа для отыскания заданного количества пар дружественных чисел #12
Цитата Сообщение от Хохол Посмотреть сообщение
return sx == y;
не первый раз на этом случае)
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
03.10.2010, 16:23  [ТС]     Программа для отыскания заданного количества пар дружественных чисел #13
ну например:
Задача: Точка задана своими координатами (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);
       }
   }
мы пишем просто, как начинающие)
silent_1991
Эксперт С++
4956 / 3032 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.10.2010, 16:26     Программа для отыскания заданного количества пар дружественных чисел #14
И начинающим неплохо бы учиться сразу писать int main() ... return 0; и не создавать глобальных переменных...
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
03.10.2010, 16:28  [ТС]     Программа для отыскания заданного количества пар дружественных чисел #15
Цитата Сообщение от silent_1991 Посмотреть сообщение
И начинающим неплохо бы учиться сразу писать int main() ... return 0; и не создавать глобальных переменных...
как учат, так и прописываем
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.10.2010, 16:30     Программа для отыскания заданного количества пар дружественных чисел #16
Цитата Сообщение от 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 строку
кстати это с++
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
03.10.2010, 16:30     Программа для отыскания заданного количества пар дружественных чисел #17
Цитата Сообщение от OffSide Посмотреть сообщение
как учат, так и прописываем
Хреново учат. Прислушайтесь к словам silent_1991.
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
03.10.2010, 16:33     Программа для отыскания заданного количества пар дружественных чисел #18
C++
1
if (isfriendly(j,i) !=0 && isfriendly(i,j)  !=0)
Ну а с нулем-то зачем сравнивать?
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.10.2010, 16:34     Программа для отыскания заданного количества пар дружественных чисел #19
Цитата Сообщение от Хохол Посмотреть сообщение
Ну а с нулем-то зачем сравнивать?
хотел чтобы было понятней, и у OffSide приняли программу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2010, 16:38     Программа для отыскания заданного количества пар дружественных чисел
Еще ссылки по теме:

Массивы. Упорядочить элементы заданного массива целых чисел по убыванию количества единиц... C++
Как в последовательности чисел заданного количества элементов выбрать семь последних? C++
C++ Функции вычисления количества дней заданного месяца и количества месяцев между двумя датами
Составить программу для построения таблицы стоимости заданного количества указанного товара C++
C++ Программа, считающая колличество выпаданий орла и решки из заданного количества раз

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

Или воспользуйтесь поиском по форуму:
OffSide
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 111
03.10.2010, 16:38  [ТС]     Программа для отыскания заданного количества пар дружественных чисел #20
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Хреново учат. Прислушайтесь к словам silent_1991.
хорошо, щас скачал книгу Харви Дейтел, Пол Дейтел "КАК ПРОГРАММИРОВАТЬ НА C++ " говорят, норм для начинающих..

Добавлено через 4 минуты
Цитата Сообщение от PointsEqual Посмотреть сообщение
хотел чтобы было понятней, и у OffSide приняли программу
спасибо большое!
Yandex
Объявления
03.10.2010, 16:38     Программа для отыскания заданного количества пар дружественных чисел
Ответ Создать тему
Опции темы

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