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

Определить, является ли заданное натуральное число совершенным - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ разложение тангенса http://www.cyberforum.ru/cpp-beginners/thread307395.html
Бодрого утра....вот не могу справиться с ошибками...буду очень благодарна, кто поможет... #include <iostream> #include <conio.h> #include <math.h> using namespace std; #define PI...
C++ Преобразовать строку, заменив точками все двоеточия, встречающиеся среди первых n/2 символов, и заменив точками все восклицательные знаки... 14.24. Дана строка. Преобразовать ее, заменив точками все двоеточия, встречающиеся среди первых n/2 символов, и заменив точками все восклицательные знаки, встречающиеся среди символов, стоящих после... http://www.cyberforum.ru/cpp-beginners/thread307390.html
работа с двумерным массивом. C++
Доброго всем времени суток, помогите решить задачку(знаю что элементарная но что то не выходит ни чего) Дана целочисленная прямоугольная матрица. Определить количество столбцов, ни содержащих ни...
Вывести на экран часть массива расположенную выше главной диагонали. C++
Дан двумерный массив размером 10х10. Вывести на экран часть массива расположенную выше главной диагонали. Нужно решить через СИ
C++ Простейший графисеский редактор http://www.cyberforum.ru/cpp-beginners/thread307381.html
Реализовать простейший векторный графический редактор со следующим набором функциональных возможностей: задание цвета фона, на котором происходит рисование. рисование точек различного цвета и...
C++ Разработайте алгоритм и напишите программу с использованием вложенных операторов цикла for для расчета СУММА(от i=1 до n)СУММА(от j=1 до m)(2*i+j) Вот исходник // программа на использование оператора цикла for #include <iostream.h> void main() { int y,n,m; y = 0; for (n=1; n<2; n=+2) { for (m=1;m<3;m=+n) подробнее

Показать сообщение отдельно
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.07.2011, 16:41
Цитата Сообщение от grizlik78 Посмотреть сообщение
Не знаю. Но учитывая, что таких чисел всего 7, их проще прям из массива и брать
Так неинтересно, и врядли таким образом можно попасть на первое-второе место на acmp =)
Ничего полезного нагуглить не получилось, максимально быстрый перебор получился таким.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
bool isPerfect(unsigned long long x){
    unsigned long long sum = 0;
    for(unsigned long long i = 1 ; i <= x/2; ++i){
        if (x % i == 0) sum += i;
        if (x < sum) return false;
    }   
    return sum == x;
}
int main(){
    unsigned long long x = 0;
    for (int i = 1; i < 10000; i += 2){
        x += i*i*i;
        if (isPerfect(x)) std::cout << x << std::endl;
    }
    return 0;
}
Это исходя из того, что все они являются суммой кубов нечетных чисел.
Выводит первые 5(считая 6), дальше виснет.
Видимо на ДП задачка...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru