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

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

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

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

03.10.2010, 13:30. Просмотров 2551. Ответов 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++
Два натуральных числа называются "дружественными", если каждое из них равно сумме всех делителей другого, за исключением его самого...

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

Программа для поиска пар взаимно-простых натуральных чисел на определенном промежутке. - C++
Как такое организовать? Тоесть вводишь число 5 потом 10 и программа должна найти все пары чисел у которых нод равен 1!

Нахождение пар чисел равныхпроизведению заданного числа( одномерный массив) - C++
Составить программу, которая в целочисленном массиве А, состоящем из N чисел находит количество таких пар элементов, произведение которых...

Для заданного четного числа вычислить сумму, для нечетного произведение чисел от 1 до заданного - C++
c++ дано число вводится с клавиатуры, если оно четное, то ввести сумму с 1 до n. Если нечетное — произведение от 1 до n. вывести на экран

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
odip
Эксперт С++
7157 / 3297 / 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
ниначмуроФ
835 / 519 / 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
ниначмуроФ
835 / 519 / 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
ниначмуроФ
835 / 519 / 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
ниначмуроФ
835 / 519 / 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
ниначмуроФ
835 / 519 / 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
Эксперт С++
4963 / 3039 / 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; и не создавать глобальных переменных...
как учат, так и прописываем
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2010, 16:28
Привет! Вот еще темы с ответами:

Программа, считающая колличество выпаданий орла и решки из заданного количества раз - C++
Друзья, прошу помощи! Учусь на инженера, столкнулась с С++. Изучаю урывками из-за коллоссальнойт нагрузки по другим предметам. Yсловия:...

Как в последовательности чисел заданного количества элементов выбрать семь последних? - C++
Как в последовательности чисел заданного кол-ва элементов выбрать семь последних?

Массивы. Упорядочить элементы заданного массива целых чисел по убыванию количества единиц... - C++
Задание 1 Упорядочить элементы заданного массива целых чисел по убыванию количества единиц, содержащихся в двоичном представлении...

Дан одномерный массив из M × N целых чисел. Составить программу определения количества повторений заданного элементаx. - C++
Дан одномерный массив из M × N целых чисел. Составить программу определения количества повторений заданного элементаx. Добавлено...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.10.2010, 16:28
Ответ Создать тему
Опции темы

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