Информационный объём одного сообщения составляет 0,5 кбайт а другого 500 байтов. сколько байт информации составляет первое сообщение? на сколько байтов информационный объем первого сообщения больше второго? полученная разность в битах ровна
По определению совершенным числом называется то число, которое равно сумме своих делителей отличных от самого числа. Значит,чтобы решить задачу нам нужно найти сумму делителей числа и проверить равна ли она самому числу. var sum, N, i:integer; begin readln(N);//читаем число с клавиатуры //Проверяем делатели до N-1, т.к. нам нужны делители не равные //самому числу for i:=1 to N-1 do if N mod i = 0 then//Если i является делителем N, то... sum:=sum+i;// ...прибавляем его к сумме делителей // Проверяем равна ли сумма делителей числа самому числу. if sum = N then writeln('Число совершенное') else writeln('Число не совершенное'); end.
Число считается совершенным, если оно равно сумме своих делителей, исключая себя самого. Для проверки, является ли число N совершенным, полагаем будущую сумму делителей равной 1 (на единицу число всегда делится) и последовательно делим N на числа, начиная от 2 и заканчивая N/2. Если число делится без остатка на очередной делитель, добавляем его к сумме. После завершения цикла делений сравниваем сумму с N и в случае равенства объявляем число N совершенным. В начале алгоритма проверяем, чтобы N было больше 1, в противном случае сразу объявляем число не совершенным.
var i,n,s:longint; begin Write('Введите натуральное число: '); Read(n); if n=1 then Writeln('Число 1 не является совершенным') else begin s:=1; for i:=2 to (n div 2) do if (n mod i)=0 then s:=s+i; if s=n then Writeln('Число является совершенным') else Writeln('Число не является совершенным') end end.
Тестовое решение: Введите натуральное число: 33550336 Число является совершенным
Введите натуральное число: 543252 Число не является совершенным
1)1024 * 0.5 = 512 байт
2)512 - 500 = 12 байт
3)12 * 8 = 96 бит