Leonidch
24.07.2020 02:36

Информатика Питон 8 класс функции за правильный ответ Напишите логическую функцию, которая определяет, является ли переданное ей
число совершенным, то есть, равно ли оно сумме своих делителей, меньших его самого.
Программа должна быть написана с функций.
Формат входных данных
Число A от 1 до 105.
Формат выходных данных
Вывести «YES» - если число совершенной, «NO» - если нет.
Пример
28 NO
29 YES

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
egoregorov5431
29.11.2021 22:09
//PascalABC.NET
//Постройте алгоритм и составьте программу, по которой будет реализован
//следующий вариант сценарий: компьютер запрашивает номер дня недели,
//после ввода компьютер сообщает название этого дня (типо если ввели
//1 это понедельник 3 - среда)

type Arr = array [0..6] of string;

begin
    var DN: Arr := ('Воскресенье', 'Понедельник', 'Вторник', 'Среда',
                'Четверг', 'Пятница', 'Суббота');
    write('Введите порядковый номер дня недели: ');
    var n := ReadlnInteger;
    write('Этот день называется ', DN[n mod 7])
end.

Постройте алгоритм и составьте программу, по которой будет реализован следующий вариант сценарий: ко
0,0(0 оценок)
Ответ:
ksu1371
29.11.2021 22:09
                                     PascalABC.NET                                       function ToBinary (x:integer):string; beginif (x>0) then ToBinary := ToBinary(x div 2) + (x mod 2).ToString;end; function FromBinary (x:string):integer; beginif (x.Length>0) then FromBinary := FromBinary(x.Substring(1)) + x[1].ToDigit*Round(Power(2,x.Length-1));end; function func (x:integer):integer; beginvar s := ToBinary(x); loop 2 do s += s.AsEnumerable.Sum(c->c.ToDigit) mod 2; func:=FromBinary(s);end; begin Println('f(N):',func(ReadInteger('N:'))); Println('Количество:',(1..160).Count(x->func(x) in 90..160)); end.

Примечание:

Если к числу в двоичной системе счисления приписывать в конец цифры, то число увеличивается и никак не может уменьшится. Поэтому, n<f(n). Следовательно, перебор различных чисел, принадлежащих отрезку [90;160], можно смело ставить до 160 (можно и меньше, но лень расписывать вычисления).

ToBinary - функция перевода числа из десятичной СС в двоичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

FromBinary - функция перевода числа из двоичной СС в десятичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

func - функция, которая выполняет преобразования числа согласно условию (пункты 1, 2, 3, 4).

Код кажется большим только из-за процедур и begin/endов. Без них - всего то 7 строчек :). В скринах можно проверить, действительно ли 19 (40-22+1).

Пример работы:


Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа
Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа
Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота