Как найти совершенное число в c
Перейти к содержимому

Как найти совершенное число в c

  • автор:

Как найти совершенное число в c

1. Найти произведение совершенных чисел из 10 случайных, взятых в интервале[1, 10].

Ответ может быть таким:
8 9 9 1 5 4 10 9 1 9
совершенных чисел нет

8 1 3 1 9 6 8 6 8 2
произведение совершенных чисел=36

    i — делители;
    p — произведение чисел;
    ch — число;
    sum — сумма делителей >
    begin
    ch:= random(10)+1; write(ch:5);
    sum :=0;
    For i:=1 to ch-1 do

      if ch mod i =0 then sum:=sum +i;

    if p > 1 then writeln(‘произведение совершенных чисел=’,p)
    else writeln(‘совершенных чисел нет’)

    Наверх
    Блок-схема

    2. Поиск совершенных чисел в заданном с клавиатуры интервале.


      for num:=x1 to x2 do

        begin
        sum:=1;
        for i:=2 to (num-1) do

          if num mod i=0 then sum:=sum+i;

        Наверх
        Блок-схема

        3. Из 10 случайных чисел в интервале [1, 10] найти количество совершенных.

        Пояснение: фактически надо найти количество шестерок.
        Ответ может быть таким: 6 6 6 kch=3

          for n:=1 to 10 do
          begin

            ch:=random (10-1+1)+1;
            sum:=0;
            for i:=1 to ch-1 do

              if ch mod i=0 then sum :=sum+i;
              begin write(ch:5); inc(kch) end;

            Наверх
            Блок-схема

            4. Дано натуральное число N. Определить, является ли оно совершенным.

              Sum:=0;
              for i:=1 to n div 2 do

                if n mod I=0 then sum:=sum+i;

              Наверх
              Блок-схема

              5. Вычислить ch/8+4, где ch — четвертое совершенное число.

                koldel — количество делителей;
                del — делители;
                Sd — сумма делителей;
                k — количество чисел;>
                begin inc(ch);
                Sd:=0 ;
                for del:=1 to ch-1 do

                  if ch mod del=0 then Sd:=Sd + del;

                Наверх
                Блок-схема

                Совершенные числа на C++

                Целое число называется совершенным, если его сомножители, включая 1 (но не само число) в сумме дают это число. Например, 6 — это совершенное число, так как 6 = 1 + 2 + 3. Напишите функцию is_perfect, которая определяет, является ли параметр number совершенным числом. Используйте эту функцию в программе, которая определяет и печатает все совершенные числа в диапазоне от 1 до 1000.

                #include using namespace std; bool is_perfect(int num) < int sum = 0; //в цикле для полученного функцией аргумента //будем находить его сомножители, путем деления его на все //целые числа в интервале от 1 до самого числа for(int j = 1; j < num; j++) < if(num % j == 0) sum += j; >//если число и сумма его сомножителей равны - значит число совершенное if(sum == num) return true; return false; > int main() < for (int i = 1; i < 1000; ++i) < if (is_perfect(i)) < cout > >

                Результат работы программы:

                28.06.2019 в 19:47 #5692

                1/2 часть цикла функции is_perfect работает впустую.
                Из теории чисел известно, что все делители произвольного числа меньше половины этого числа, то есть j Учитывая этот факт, можно переписать is_perfect так:

                bool is_perfect(int num) < int sum = 0; for (int j = 1; j > return sum == num; >

                29.06.2019 в 06:07 #5693

                Как найти совершенное число в c

                *

                Новости:

                Если Вы не можете войти на форум, потому что не подходит пароль, его нужно восстановить по указанной там ссылке.
                http://seoaction.net/index.php?topic=877

                • Seoaction.net — seo и не только. »
                • Веб-строительство и веб-дизайн »
                • Программирование »
                • C, C++, C# (Си, Си плюс, Си флеш) »
                • Функция на совершенное число

                Страницы: [1] Вниз

                Автор Тема: Функция на совершенное число (Прочитано 2281 раз)

                0 Пользователей и 1 Гость просматривают эту тему.

                Страницы: [1] Вверх

                • Seoaction.net — seo и не только. »
                • Веб-строительство и веб-дизайн »
                • Программирование »
                • C, C++, C# (Си, Си плюс, Си флеш) »
                • Функция на совершенное число

                Быстрый ответ

                В быстром ответе можно использовать BB-теги и смайлы.

                Размер занимаемой памяти: 4 мегабайта.
                Страница сгенерирована за 0.202 секунд. Запросов: 37.

                Совершенные числа

                Число совершенно, если оно равно сумме всех своих делителей, кроме самого себя. Пример: 6 = 1 + 2 + 3. Найдите все совершенные числа от 1 до 10000 и выведите их на экран.

                Подсказка: необходимо найти все делители от 1 до тестируемого числа. Делителем числа называется число, которое делит данное без остатка ( a mod b = 0 ).

                Алгоритм решения задачи:

                1. Каждое число от 1 до 1000 поочередно делить на все целые числа от 1 до этого числа. На самом деле достаточно до половины заданного числа.
                2. Найти сумму всех делителей и сравнить с самим числом. Если сумма и число равны, то последнее является совершенным.

                Программа на языке Паскаль:

                const N = 10000; var i, j, sum: integer; begin for i := 2 to N do begin sum := 0; for j := 1 to i div 2 do begin if i mod j = 0 then sum := sum + j; end; if sum = i then writeln(i, ' - perfect!'); end; end.

                Результат выполнения программы:

                6 - perfect! 28 - perfect! 496 - perfect! 8128 - perfect!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *