Prime := { Получаем первое слово из последовательности }; while { не конец последовательности (не известно от куда аффтар получает слова ) } do begin Slovo := { Получаем очередное слово последовательности }; if Length(Slovo) <= Length(Prime) then begin CopyPrime := Prime; N := 1; while (N <= Length(Slovo)) and (Pos(Slovo[N], CopyPrime) > 0 do begin Delete(CopyPrime, Pos(Slovo[N], CopyPrime), 1); Inc(N); end; if N > Length(Slovo) then { Slovo можно получить из первого слова } else { нельзя получить Slovo из первого слова } end; end;
while { не конец последовательности (не известно от куда аффтар получает слова ) } do
begin
Slovo := { Получаем очередное слово последовательности };
if Length(Slovo) <= Length(Prime) then
begin
CopyPrime := Prime;
N := 1;
while (N <= Length(Slovo)) and (Pos(Slovo[N], CopyPrime) > 0 do
begin
Delete(CopyPrime, Pos(Slovo[N], CopyPrime), 1);
Inc(N);
end;
if N > Length(Slovo) then
{ Slovo можно получить из первого слова }
else
{ нельзя получить Slovo из первого слова }
end;
end;
f=[]
for x in range(25552,58886):
q=0
for d in range(10,100):
if x%d==0:
q+=1
if q>=15:
f.append(x)
print(max(f),len(f))
Объяснение:
1 строка - создание массива
2 строка - перебор чисел в указанном диапазоне до последнего элемента не включительно
3 счетчик для счета делителей
4 перебор возможных делителей (до последнего числа не включительно )
5 проверка является число делителем или нет
6 подсчет этих делителей
7 проверка на количество делителей
8 добавления числа (x) в массив , т.е. тех чисел , что имеют не менее 15 делителей
9 вывод максимального значения массива и его длины