Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 19:56   #1
xOffSide
Новичок
Джуниор
 
Регистрация: 09.10.2010
Сообщений: 1
По умолчанию Дружественные числа

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

в универе на паре начал писать, дальше застрял:

Код:
#include <stdio.h>;
voidmain ()
{ //поиск делителей
int x;
printf ("введите числа");
scanf (%d, &x);
for (int d=1; d<=x/2; d++)
помогите дописать

Последний раз редактировалось Stilet; 09.10.2010 в 20:29.
xOffSide вне форума Ответить с цитированием
Старый 09.10.2010, 20:28   #2
coinkrsk
пыжашийся нуб
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 93
По умолчанию

Вот небольшой пример кода демонстрируюший нахождение сумм делителей:
Код:
#include <iostream>
using std::cout;
using std::endl;

int findDividersSum( int num )
{
	int sum = 0;

	for (int i = 1; i <= (num / 2); i++)
		if ( num % i == 0 )
			sum += i;
	
	return sum;
}

int main( )
{	
	cout << findDividersSum( 220 ) << endl;
	cout << findDividersSum( 284 ) << endl;

	return 0;
}
А дальше постановка задачи неодназначная, да и самому будет полезно подумать.
coinkrsk вне форума Ответить с цитированием
Старый 16.08.2011, 11:15   #3
rackot
Новичок
Джуниор
 
Регистрация: 16.08.2011
Сообщений: 2
По умолчанию vot

Цитата:
#include<stdio.h>
int summa_del(int x)
{
int s=0;
for(int i=1;i<=x/2;i++)
if(x%i==0) s=s+i;
return s;
}
void main()
{
int i,b,c;
for(i=1;i<=10000;i++)
{
b=summa_del(i);
c=summa_del(b);
if(i==c && c!=b)
printf("%d drug %d\n",i,b);
}
}
вот что получилось у меня

Последний раз редактировалось rackot; 16.08.2011 в 11:17.
rackot вне форума Ответить с цитированием
Старый 16.08.2011, 11:59   #4
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

rackot, а почему 10000?
Код:
#include <stdio.h>


int _devs_sum(int _value)
{
    int _res = 0, i;
    for(i = 1; i <= _value / 2; i++)
        if(_value % i == 0)
            _res += i;
    return _res;
}


int main(void)
{
    int _pairs_n, _first, _second;
    printf("Input the number of pairs to be found:   ");
    scanf("%d", &_pairs_n);
    for(_first = 2; _pairs_n > 0; _first++)
    {
        _second = _devs_sum(_first);
        if(_first < _second && _devs_sum(_second) == _first)
        {
            printf("(%d, %d)\n", _first, _second);
            _pairs_n--;
        }
    }

    return 0;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Syuf; 16.08.2011 в 12:05.
Syuf вне форума Ответить с цитированием
Старый 16.08.2011, 12:07   #5
rackot
Новичок
Джуниор
 
Регистрация: 16.08.2011
Сообщений: 2
По умолчанию

мне просто надо было найти все дружественные до 10 000 вот и идет поиск с 1 по 10000...если напишем 100 000 будет идти поиск до 100 000....при желании можно заменить число на переменную и самому перед началом программы вводить необходимое число!
Извиняюсь я не дочитал условие этой задачи до конца! Но задача в принципе аналогична, может кому нибудь пригодится!

Последний раз редактировалось rackot; 16.08.2011 в 12:21.
rackot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить:у=а*(в*в*в)*с,где а,в,с-двоичные числа.Для хранения числа использ.массив! Таняпервокурсница Помощь студентам 4 04.06.2010 12:08
Дружественные функции и классы Opiym Помощь студентам 1 05.04.2010 21:51
Как числа в двоичном виде вывести в столбик по 4 числа? Equalizer Общие вопросы C/C++ 11 27.09.2009 14:15
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49