На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 04.12.20 10:13. Заголовок: Задача 17 (№47)


Задача №47, тренировочные задания с сайта Полякова (Задание 17 ЕГЭ):
47) (А. Куканова) Рассматривается множество целых чисел, принадлежащих числовому отрезку [2055; 9414], которые удовлетворяют следующим условиям:
− сумма последних двух цифр не равна 5;
− не кратны 4, 5 и 41.
Найдите минимальное из таких чисел и последние 3 цифры произведения всех таких чисел.

Решение на Паскаль в качестве второго ответа дает 0:
var count, n, max, k, sum, min: integer; p:longint;
begin
count:= 0; p:=1;
min:=9415;

for n:=9414 downto 2055 do
if ((n mod 10)+((n div 10) mod 10) <>5) and((n mod 4<>0) and(n mod 5<>0) and (n mod 41<>0)) then begin
min:=n;
p:=p*n; writeln (p);
end;
writeln(min, ' ', p )
end.

Тип данных для переменной Р дает 0.

На Python второй ответ дает 768. Это неверно.
Мое решение:

# -*- coding: utf-8 -*-

p=1
k=9415
for n in range(9414,2056,-1):
if ((n%10+n//10%10) !=5) and (n%4 !=0) and (n% 5!=0) and (n%47 !=0):
k=n
p=p*n

print ( k, " ", sep="", end="" )
print (p , " ", sep="", end="" )


Подскажите, как получить верный ответ: 3 последние цифры произведения всех таких чисел?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 7 [только новые]


Администратор




Сообщение: 2190
ссылка на сообщение  Отправлено: 04.12.20 20:27. Заголовок: Осипова пишет: Подск..


Осипова пишет:
 цитата:
Подскажите, как получить верный ответ: 3 последние цифры произведения всех таких чисел?

 p = 1 
k = 9515
for n in range(9414,2056,-1):
if ((n%10+(n//10)%10) !=5) and (n%4 !=0) and (n% 5!=0) and (n%41 !=0):
k = n
p = (p*n) % 1000

print( k, " ", sep="", end="" )
print( p, " ", sep="", end="" )


___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 3
ссылка на сообщение  Отправлено: 07.12.20 15:31. Заголовок: Произведение получае..


Произведение получается слишком большим. В Паскале типа longint не хватает.
В Питоне также не хватает разрядной сетки для вывода ответа.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 2209
ссылка на сообщение  Отправлено: 07.12.20 15:33. Заголовок: Осипова пишет: Произ..


Осипова пишет:
 цитата:
Произведение получается слишком большим. В Паскале типа longint не хватает.

А вы посмотрите внимательно на приведенное решение. Вам само число не нужно, вам нужны последние три его цифры.
 цитата:
В Питоне также не хватает разрядной сетки для вывода ответа.

А поподробнее про разрядную сетку в Питоне где почитать?

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 1
ссылка на сообщение  Отправлено: 11.03.21 21:35. Заголовок: задача 17(48) Max =..


задача 17(48)
 Max = 0 
c = 0
Pro = 1
for n in range(1985, 8528+1):
if (str(n)[-1] + str(n)[-2]) != 6 and n%2 != 0 and n%7 != 0 and n%47 != 0:
c = n
Pro = Pro * n
Max = max(Max, c)
print(Max, Pro%1000)


8527, 125

Где ошибка?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 2552
ссылка на сообщение  Отправлено: 13.03.21 10:58. Заголовок: Саша123 пишет: (str(..


Саша123 пишет:
 цитата:
(str(n)[-1] + str(n)[-2]) != 6

1) Вы складываете символьные строки?
2) по условию суммы двух последних цифр РАВНА 6.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 1
ссылка на сообщение  Отправлено: 12.06.21 23:01. Заголовок: Поляков пишет: Не..


Поляков пишет:
[quote]`
Не могу понять как работает строчка p = (p*n) % 1000 . Она умножает последние 3 числа. Но почему такая запись и как она работает?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 2851
ссылка на сообщение  Отправлено: 13.06.21 22:27. Заголовок: Artem31 пишет: Не мо..


Artem31 пишет:
 цитата:
Не могу понять как работает строчка p = (p*n) % 1000

Умножаем p на n и сразу оставляем только 3 последние цифры. Чтобы не получилось очень большого числа.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 6417
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет