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

Поиск совершенного числа N через цикл for - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнение двумерных символьных массивов http://www.cyberforum.ru/cpp-beginners/thread34232.html
Помогите пожалуйста в учебниках про строки вообще мало что пишут, как заполнять массив из нескольких строк, с клавиатуры. Без методов класса, желательно с помощью функции gets(), в конкретном примере, заранее спасибо.
C++ Возвращаемое значение функции Здарвствуйте. Моя задача состоит в написании следующей программы: вычислить среднее арифметическое значение элементов матрицы W(L,L), расположенных слева и справа от двух диагоналей. Эта программа программа написана на паскале: uses crt; const nmax=30;{максимальный размер матрицы} var W:arrayof real;{тип матрицы} L,i,j,k:integer; sr:real;{среднее} begin clrscr;... http://www.cyberforum.ru/cpp-beginners/thread34229.html
C++ Реализация программы
#include <iostream> #include <algorithm> #include <numeric> int main() { using namespace std; srand((unsigned)time(NULL)); const int N = 1000; int a;
C++ Общий наибольщий делитель в одномерном массиве
дано: найти общий наибольщий делитель в одномерном массиве ( в массиве все элементы положительны). help me please!
C++ класс Множество http://www.cyberforum.ru/cpp-beginners/thread34156.html
помогите решить пожалуйста...исжу на экзамене...требуется срочная помощь Разработайте класс Множество.Класс должен содержать элементы множества как закрытые члены,неявный конструктор,конструктор с параметрами,конструктор копирования,деструктор,методы для вывода данных,определение,если одно множество является подмножеством другого,
C++ Известно что некоторое число содержится в каждом из трех целочисленных неубывающих массивов //надо написать при помощи использования функции// Известно что некоторое число содержится в каждом из трех целочисленных неубывающих массивов x(1)<= x(2)<=x (n), y(1)<=y(2)<= y(m) и z(1)<=z(2)<=...<=z(k). Найти это число. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.01.2011, 22:11     Поиск совершенного числа N через цикл for
Русдеч, Если заинтересует, я когда-то решал такую задачу:
Совершенные числа
(Время: 1 сек. Память: 16 Мб Сложность: 51%)
Число называется совершенным, если оно равно сумме всех своих делителей, меньших его самого. Требуется найти все совершенные числа от M до N.
Входные данные

Входной файл INPUT.TXT содержит числа M и N, разделенные пробелом. (1 <= M <= N <= 5*10^18)
Выходные данные

В выходной файл OUTPUT.TXT выведите по одному числу в строке в порядке возрастания все совершенные числа, находящихся на отрезке [M, N]. В том случае, когда таких чисел нет следует вывести «Absent».
Вот код:
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 "stdafx.h"
#include <stdio.h>
#include <math.h>
 
int main()
{
    int mas[8]={2, 3, 5, 7, 13, 17, 19, 31};
    long M, N, temp;
    int fl=1, i, fl1=0;
//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);
    scanf("%ld%ld", &M, &N);
    for(i=0; i<8 && fl; i++)
    {
        temp=long(pow((double)2,(double) mas[i]-1)*(pow((double)2,(double)mas[i])-1));
        if(temp>=M && temp<=N)
        {
            printf("%ld\n", temp);
            fl1=1;
        }
        if(temp>N)
            fl=0;
    }
    if(!fl1){printf("Absent");}
  return 0;
}
Запустите, введите 0 и 5000000000000000000 (5*10^18). Выведет все совершенные числа в этом диапазоне менее чем 1 секунда.
 
Текущее время: 19:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru