Подозрение пало на Конька-Горбунка и его двух лошадиных братьев. Известно, что за один час ночи каждый из них может вытоптать не более определенного количества десятин братьям выполнить отцовское задание и определить вора. Напишите программу, которая уточняет, на кого падает подозрение в данную ночь. Формат ввода
«Производительность» Конька-Горбунка (действительное число).
«Производительность» Лошадиного брата - 1 (действительное число).
«Производительность» Лошадиного брата - 2 (действительное число).
Длительность ночи в часах (целое число).
Количество испорченных десятин (действительное число).
Формат вывода
В одной строке через пробел вывести всех подозреваемых. Если никто не подозревается, вывести: Не они!
программа находит совершенные числа в диапазоне от 1 до 10000 (совершенное число - натуральное число, равное сумме всех своих собственных делителей)
Program z3; ' - заголовок программы
var ' - служебное слово, начинающее раздел описания переменных
i,j,s: word; ' - описание переменных i,j,s как числа от 0 до 65535
begin ' - служебное слово, начинающее описание операторов программы
for i := 1 to 10000 do begin ' - организация цикла по i от 1 до 10000
s := 0; ' - обнуление переменной s
for j:=1 to i div 2 do ' - организация цикла по j от 1 до целая_часть(i:2)
if i mod j = 0 then ' - если i делится на j без остатка,
s := s+j; ' - то переменную s увеличиваем на значение переменной j
if s = i then ' - если значения переменных s и i совпадают
write(i,' '); ' - то распечатываем значение переменной i
end; ' - конец цикла по i
writeln; ' - пустой оператор печати, используется для организации печати с новой строки
readln; ' - пустой оператор чтения, используется для организации задержки экрана
end. ' - служебное слово, заканчивающее описание операторов программы
var // блок описания переменных
S: real;
I, N, J, K, L, M: Integer;
begin
S:=-l; // задаем начальное значение переменной, в которой будет хранится ответ. -1 потому что программа посчитает билет с номером 000000
for I := 0 to 9 // перебор первой цифры
do for J:=0 to 9 // перебор второй цифры
do for K:=0 to 9 // третьей
do for L:=0 to 9 // четвертой
do for M:=0 to 9 // пятой
do for N:=0 to 9 // шестой
do
if I+J + K = L+M + N // проверяем равны ли суммы первых трех и последних трех цифр
thenS:=S+ 1; // если равны, то прибавим билет к ответу
writeln('Число счастливых билетов = ', S:6:0); // выводим ответ, отведя 6 позиций для числа
readln; // нужно, чтобы не закрылось диалоговое окно (хотя в некоторых средах можно обойтись без этого)
end.