Код:
class Car():
def __init__(self, mileage, fuel):
self.mileage = mileage
self.fuel = fuel
def vitr(self):
self.fuel = self.fuel - 3
print('залишилось пального ' + str(car1.fuel))
def zapr(self):
self.fuel = self.fuel + 10
print('залишилось пального', car1.fuel)
car1 = Car(0, 0)
print('Пробіг', car1.mileage)
car1.zapr()
a = int(input('відстань? '))
while (a > 0):
print('ЇДЕМО!')
a = a - 50
car1.vitr()
if(car1.fuel < 3): car1.zapr()
print('ФІНІШ')
Вывод:
Пробіг 0
залишилось пального 10
відстань? 100
ЇДЕМО!
залишилось пального 7
ЇДЕМО!
залишилось пального 4
ФІНІШ

Два соображения:
Произведение делится на 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)