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

Найти дружественные числа, принадлежащие отрезку [1; 10000] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Футбол. Какая команда покинет высшую лигу? сделате! http://www.cyberforum.ru/cpp-beginners/thread279903.html
Помогите пожалуйста. 1. Даны список футбольных команд высшей лиги России и количество очков, набранных каждой командой в чемпионате России. Известно, что нет команд с равным числом очков, а две команды, набравшие наименьшее число очков, покинут высшую лигу. Какие это команды? Заранее очень благодарен!
C++ Использование функций и структур Имеется две задачки, скажу честно , еще не решал...не успеваю...пожалуйста, уважаемые программисты помогите..буду очень признателен... Использование функций. 3. Описать функцию NMin(A,N) целого типа, находящую номер минимального элемента массива A (массив состоит из N вещественных чисел). С помощью этой функции найти номера минимальных элементов массивов A, B, C размера NA, NB, NC... http://www.cyberforum.ru/cpp-beginners/thread279887.html
C++ Определить является ли квадратная матрица симметричной
не получается решить.. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержимое.
C/C++)не ищет сумму! +скобки не могу правильно расставить( C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: − номер минимального элемента массива; − сумму элементов массива, расположенных между первым и вторым отрицательными элементами. Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом – все остальные. //////////////////////////////////не ищет сумму! +скобки...
C++ Подсчет цифр и букв http://www.cyberforum.ru/cpp-beginners/thread279865.html
Народ, есть такая проблема! Мне нужно написать прогу, которая считывает текст из файла и определяет чего больше: цифр или букв. Я сделал её, но она работает только для одной строки, а мне нужно для нескольких строк. Помогите доделать пожалуйста! Вот код программы: #include <iostream> #include <conio.h> #include <fstream> #include <string> using namespace std; void main()
C++ ostream Вот мой класс: class BigInt { int Size; // Size - текущая длина (истинная длинна числа) int SizeMax; // SizeMax - максимальная длина int *Coef; // Массив коэффициентов (массив где храним наши четырехзнаяные числа) int Znak; // Знак числа, либо 1(положительное число), либо -1(отрицательное) public: .............. подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.04.2011, 12:23     Найти дружественные числа, принадлежащие отрезку [1; 10000]
OverClocker, тупой перебор, но считает ооочень долго, первые две пары (а в промежутке [1; 10000] их всего пять) минуты за 4 у меня нашёл. Дальше не ждал.

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
#include <iostream>
 
typedef unsigned long long ull_t;
 
ull_t sum_of_divs(ull_t);
bool is_friendly(ull_t, ull_t);
 
int main()
{
    const ull_t left = 1;
    const ull_t right = 10000;
 
    for (ull_t num1 = left; num1 <= right; ++num1)
        for (ull_t num2 = num1 + 1; num2 <= right; ++num2)
            if (is_friendly(num1, num2))
                std::cout << num1 << "\t" << num2 << std::endl;
 
    return 0;
}
 
ull_t sum_of_divs(ull_t number)
{
    ull_t sum = 0;
 
    for (ull_t d = 1; d < number / 2 + 1; ++d)
        if (number % d == 0)
            sum += d;
 
    return sum;
}
 
bool is_friendly(ull_t number1, ull_t number2)
{
    return sum_of_divs(number1) == number2 && sum_of_divs(number2) == number1;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru