Задание №1.
<span>k = int(input('Начало диапазона '))
n = int(input('Конец диапазона '))
a = [0] * n <span># создание массива с n количеством элементов
</span>for i in range(n): <span># заполнение массива
</span> a[i] = i
a[1] = <span>0
</span>
m = 2 <span># замена на 0 начинается с 3-го элемента
</span>while m < n: <span># перебор всех элементов до заданного числа
</span> if a[m] != 0:
j = m * 2
while j < n:
a[j] = 0
j = j + m
m += <span>1
</span>
<span># вывод простых чисел на экран
</span>b = []
for i in a:
if a[i] != 0 and i >= k:
b.append(a[i])
del a
print(b)
Задание №2
</span>
<span>count = <span>0
</span>for i in range(13):
for j in range(11):
for k in range(9):
if 185 == i*15+j*17+k*21:
count += <span>1
</span> print(i,j,k)
print('Всего способов - ', count)
Задание №3
</span>
<span>x = int(input())
print('\n'.join(
str(n) for n in range(x+1)
if all(x != 0 and n % x == 0 for x in map(int, str(n)))))
</span>
Мы ищем динамикой наибольшую подпоследовательность для отрезка [0; i] где гарантировано должен быть i-ый элемент. Потом выбираем из всех наибольшее число.
Ответ:
1101 (2) -> 1*2^0 + 2^2+2^3 = 1+4+8 = 13
8 (16) -> 8 (10)
13 + 8 = 21
21 (10) -> 10101 (2)
Второе:
program o;
var A:array[1..5] of integer; i:integer;
begin;
for i:=1 to 5 do readln(A[i]);
for i:=5 downto 1 do writeln(A[i])
end.
Третье:
program p;
var A:array[1..15] of integer; i,sum1,sum2,res:integer;
begin;
for i:=1 to 15 do read(A[i]);
for i:=1 to 15 do
if i mod 2=0 then sum1:=sum1+A[i] else sum2:=sum2+A[i];
res:=sum1-sum2;
write(res);
end.
Ответ:
336
Объяснение:
чтобы перевести сделаем так:
0*8^0 + 2*8^1 + 5*8^2 = 336 в десятичной системе счисления