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

Напечатать все пары дружественных чисел - 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 *lpbArray=(BYTE*)LockResource(hGlob);
C++ Настройка Geany на Windows (не пашет) Помогите!!! Может кто встречался с такой проблемой. В общем только Geany установил, воткнул туда код с книжки (перед этим поменял кодировку на Русская и тип файла C++ #include <iostream.h> int main() { count<<"Hello World!\n"; return 0: } Выдает такое сообщение командная строка http://www.cyberforum.ru/cpp-beginners/thread646157.html
C++ Недопонимание указателей
Уже прошёл их по книжке давно, но они частенько встречаются, и я никак не могу понять некоторые процессы с ними. Допустим есть в классе какие-то данные типа int lim, char name Методы принимают указатели допустим Name::Name (const char * nm) почему при копировании std::strncpy (name, nm, lim-1) мы указываем просто nm, а не *nm ? Ведь nm - это адрес, а само значение это *nm. Т.е по сути в 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 подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
4220 / 2194 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.09.2012, 15:44     Напечатать все пары дружественных чисел
Вы O(n^2) раз ищите делители. Это очень много. Можно по-другому. В массив A размера N сначала записываете сумму делителей, то есть A[i] = сумма делителей числа i. А потом работаете уже с этим массивом. Много быстрее будет. Немного переделал вашу программу:

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
#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, *a;
    cout << "Ââåäèòå ÷èñëî: ";
    cin >> n;
    a = new int[n];
    for (i=1; i<n; i++)
       a[i] = sum_del(i);
    for (i=1; i<n-1; i++)
        for (j=i+1; j<n; j++)
        if (i==a[j] && j==a[i])
            cout << i << "\t" << j << endl;
 system("pause");
 return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru