Вводится последовательность целых чисел. Ноль – признак конца. Требуется вывести максимальное из произведений двух элементов последовательности, которое делится на 15. Множители, составляющие произведение, могут быть равными, если какое-то число встречается в последовательности более одного раза. Если же требуемое произведение отсутствует, то вывести просто максимальное произведение двух элементов последовательности. Гарантируется, что в последовательности будет не менее двух элементов. Sample Input:
6
3
5
0

Sample Output:
30

Программу написать в Python.

Xmitejr Xmitejr    1   23.03.2021 18:49    85

Ответы
jkazlova jkazlova  16.01.2024 15:58
Конечно, я могу помочь с этим вопросом.

Для решения этой задачи нам понадобится несколько шагов.

1. Начнем с создания переменных, которые будут использоваться в программе. Создадим переменную max_multiply и присвоим ей значение -1. Также создадим пустой список sequence, который будет содержать все введенные числа.

```python
max_multiply = -1
sequence = []
```

2. Далее, мы будем считывать числа, пока не встретим 0. Используем цикл while для этого.

```python
while True:
num = int(input())
if num == 0:
break
sequence.append(num)
```

3. Теперь у нас есть все числа последовательности в списке sequence. Найдем максимальное произведение двух чисел и проверим, делится ли оно на 15. Если да, то это и будет искомый ответ. Если нет, то мы продолжим искать максимальное произведение.

```python
for i in range(len(sequence)):
for j in range(i+1, len(sequence)):
multiply = sequence[i] * sequence[j]
if multiply % 15 == 0:
max_multiply = max(max_multiply, multiply)
```

4. Наконец, мы можем вывести результат. Если значение max_multiply все еще -1, значит, ни одно произведение не делится на 15. В этом случае мы просто выведем максимальное произведение двух чисел. В противном случае, мы выведем найденное произведение, которое делится на 15.

```python
if max_multiply == -1:
max_multiply = max(sequence) * max(sequence)
print(max_multiply)
```

Вот полный код для данной задачи:

```python
max_multiply = -1
sequence = []

while True:
num = int(input())
if num == 0:
break
sequence.append(num)

for i in range(len(sequence)):
for j in range(i+1, len(sequence)):
multiply = sequence[i] * sequence[j]
if multiply % 15 == 0:
max_multiply = max(max_multiply, multiply)

if max_multiply == -1:
max_multiply = max(sequence) * max(sequence)
print(max_multiply)
```

Теперь программа способна считывать последовательность чисел и выводить максимальное произведение двух чисел, которое делится на 15. Если такое произведение отсутствует, программа выведет просто максимальное произведение двух чисел.

Надеюсь, это помогло! Если у вас остались вопросы, пожалуйста, дайте мне знать.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика