const
n = 30;
var
a:array[1..n] of byte;
i, count:integer;
begin
randomize;
for i := 1 to n do
begin
a[i] := random(51) + 150;
writeln('Рост претендета № ', i:2, ' - ', a[i]);
end;
write('Номера подходящих кандидатур: ');
for i := 1 to n do
if a[i] >= 180 then
begin
inc(count);
write(i, ' ');
end;
writeln;
writeln('Общее количество подходящих претендентов: ', count);
end.
Два соображения:
Произведение делится на 7, но не делится на 49, если один из сомножителей делится на 7 (но не на 49), а второй - не делится на 7.Произведение будет больше, если каждый из сомножителей будет большеПолучаем такую идею: будем хранить максимальное из всех чисел, делящихся на 7, но не делящихся на 49, и максимальное из чисел, не делящихся на 7. Их произведение будет ответом.
Реализация (Python 3.8.1)
max_div_7 = 0
max_not_div_7 = 0
while (x := int(input())) != 0:
if x % 7 != 0:
max_not_div_7 = max(max_not_div_7, x)
elif x % 7 == 0 and x % 49 != 0:
max_div_7 = max(max_div_7, x)
if max_div_7 == 0 or max_not_div_7 == 0:
print(1)
else:
print(max_div_7 * max_not_div_7)
Два соображения:
Произведение делится на 7, но не делится на 49, если один из сомножителей делится на 7 (но не на 49), а второй - не делится на 7.Произведение будет больше, если каждый из сомножителей будет большеПолучаем такую идею: будем хранить максимальное из всех чисел, делящихся на 7, но не делящихся на 49, и максимальное из чисел, не делящихся на 7. Их произведение будет ответом.
Реализация (Python 3.8.1)
max_div_7 = 0
max_not_div_7 = 0
while (x := int(input())) != 0:
if x % 7 != 0:
max_not_div_7 = max(max_not_div_7, x)
elif x % 7 == 0 and x % 49 != 0:
max_div_7 = max(max_div_7, x)
if max_div_7 == 0 or max_not_div_7 == 0:
print(1)
else:
print(max_div_7 * max_not_div_7)
Program Zn;
var m:array[1..30] of byte;
c,i:integer;
Begin
for i:=1 to 30 do begin
writeln('Введите рост кандидата');
Readln(m[i]);
if m[i]>=180 then inc(c)
end;
writeln('Количество подходящих кандидатур: ',c);
end.
(Программа проверена и откомпелирована на Pascal.NET, если есть вопросы, пишите)