Форум программистов, компьютерный форум, киберфорум
Наши страницы

Напечатать все пары дружественных чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Cannot convert 'const wchar_t *' to 'const char *' http://www.cyberforum.ru/cpp-beginners/thread646181.html
HMODULE hMod=GetModuleHandle(NULL); if(!hMod) { } HRSRC hRes=FindResource(hMod,"acc.dll",RT_RCDATA); if(!hRes){ } HGLOBAL hGlob=LoadResource(hMod,hRes); if(!hGlob) { } BYTE...
C++ Настройка Geany на Windows (не пашет) Помогите!!! Может кто встречался с такой проблемой. В общем только Geany установил, воткнул туда код с книжки (перед этим поменял кодировку на Русская и тип файла C++ #include <iostream.h> int... http://www.cyberforum.ru/cpp-beginners/thread646157.html
C++ Недопонимание указателей
Уже прошёл их по книжке давно, но они частенько встречаются, и я никак не могу понять некоторые процессы с ними. Допустим есть в классе какие-то данные типа int lim, char name Методы принимают...
C++ Вынос строк для SQL запросов наружу
Есть проект который интенсивно работает с базой данный при помощи запросов. Выходной файл имеет размер ~6 Mb. И мне пришла идея вынести все строки SQL запросов в наружный файл (.dll или что-то...
C++ Вызов конструктора со скобками и без http://www.cyberforum.ru/cpp-beginners/thread646145.html
Всем здравствуйте С++ только изучаю. В общем, есть у меня такой код: #include <iostream> using namespace std; class Test { public : Test() : data(777)
C++ Как правильно вставить код на ассемблере? Есть такой код: struct { unsigned long first_sect; unsigned nsect; void *buf; } cb; /** * getboot подробнее

Показать сообщение отдельно
user_p01
19 / 19 / 2
Регистрация: 03.11.2011
Сообщений: 80

Напечатать все пары дружественных чисел - C++

03.09.2012, 15:40. Просмотров 2671. Ответов 7
Метки (Все метки)

Помогите пожалуйста решить рационально задачу:

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

Мой вариант работает правильно, но очень медленно, т. к. слишком много итераций. Подскажите как решить эту задачу, чтобы программа работала быстрее.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int sum_del(int n)
{
 int sum=0;
 for (int i=1; i<=n/2; i++)
 if (n%i==0)
    sum+=i;
 return sum;
}
int main()
{
    setlocale(LC_ALL, "rus");
    int n, i, j;
    cout << "Введите число: ";
    cin >> n;
    for (i=1; i<n-1; i++)
        for (j=i+1; j<n; j++)
        if (i==sum_del(j) && j==sum_del(i))
            cout << i << "\t" << j << endl; 
 system("pause");
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru