Форум программистов, компьютерный форум 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++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.09.2012, 20:44     Напечатать все пары дружественных чисел
neske, Вы правы. Но так как ищутся делители у всех чисел от 1 до n, то можно, учитывая однозначность канонического разложения, использовать решето Эратосфена, тогда вообще без делений будет. Первичная цель была убрать повторные вычисления сумм. Если бы ТС было это недостаточно, можно было идти дальше. Но все равно, спасибо за ценное замечание.

Добавлено через 10 минут
neske, алгоритм неверно считает, например для 9 выдает 13. Думаю, что лучше так

C++
1
2
3
4
5
6
7
8
9
10
11
12
int getSum(int n) {
    int i, sum = 1;
    for (i = 2; i * i < n; ++i) {
        if (n % i == 0) {
            sum += i;
            sum += n / i;
        }
    }
    if (i * i == n)
       sum += i;
    return sum;
}
да еще и проверок в нем меньше. В алгоритме не должно само число n учитываться. А если все делители, то можно так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int getSum(int n) {
    int i, sum = 1;
    for (i = 2; i * i < n; ++i) {
        if (n % i == 0) {
            sum += i;
            sum += n / i;
        }
    }
    if (i * i == n)
       sum += i;
    if (n != 1)
       sum += n;
    return sum;
}
 
Текущее время: 08:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru