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

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

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

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



Сообщение: 1
ссылка на сообщение  Отправлено: 16.03.21 13:50. Заголовок: Задание 25. №103 ответ не совпадает


Среди целых чисел, принадлежащих числовому отрезку [351627;428763], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе количество таких чисел и их среднее арифметическое. Для среднего арифметического запишите только целую часть числа.
Мой ответ: 16200 124967. Где я ошибаюсь?
 var k ,i, p,r,d,col,y, sum: integer; 
var s: array[1..10] of integer;
function prost(x: integer): boolean;
var j: integer; flag: boolean;
begin
k:=0;
for j:=1 to x do
if x mod j = 0 then k:=k+1;
if k=2 then flag:=true
else flag:=false;
prost:=flag;
end;

begin
sum:=0;
for d:= 351627 to 428763 do begin
y:=0;
for i:=2 to d-1 do
if (d mod i = 0) and prost (i) then begin
y:=y+1;
s[ y]:=i;
end;
for p:=1 to y-1 do
for r :=p+1 to y do
if s[ p]*s[ r]=d then begin
col:=col+1;
sum:=sum+d ;
end;
end;
writeln(col, ' ', sum div col);
end.


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





Сообщение: 2
ссылка на сообщение  Отправлено: 16.03.21 15:25. Заголовок: Думаю, проблема в то..


Думаю, проблема в том, что не хватает типа integer, чтобы записать среднее этих чисел. Попробуйте сделать его longint.

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




Сообщение: 2580
ссылка на сообщение  Отправлено: 16.03.21 20:29. Заголовок: Василькова пишет: Гд..


Василькова пишет:
 цитата:
Где я ошибаюсь?

Я, честно сказать, не понял ваш алгоритм. Почти наверняка проблема в том, что сумма стала очень большой и вышла за пределы 4 байтов. Сумму нужно (в PascalABC.NET) объявить с типом int64. Другой вариант - вести среднее через цикл как вещественное число по рекурсивной формуле, тогда сумму считать не нужно:
sred = (sred*(col-1) + d) /col;
Вот вариант решения, он работает очень быстро:
  var i, d, col: integer;  
sred: double;

function prost(x: integer): boolean;
var j: integer; flag: boolean;
begin
flag := true;
for j:=2 to round(sqrt(x)) do
if x mod j = 0 then begin
flag := false;
break;
end;
prost:=flag;
end;

begin
sred := 0;
for d:= 351627 to 428763 do
for i:=2 to round(sqrt(d)) do
if (d mod i = 0) and prost (i) then begin
if (i <> d div i) and prost(d div i) then begin
col := col + 1;
sred := (sred*(col-1) + d) / col;
break;
end;
end;

writeln(col, ' ', floor(sred));
end.


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



Сообщение: 2
ссылка на сообщение  Отправлено: 18.03.21 00:59. Заголовок: Хм... всего-то дел....


Хм... всего-то дел...
 
## uses School;
var ЧислоГодится: integer -> boolean := Число ->
begin
var ВсеДелители := Число.Divizors;
Result := (ВсеДелители.Count = 4) and
ВсеДелители[1].IsPrime and ВсеДелители[2].IsPrime
end;
var Отобрано := Range(351627, 428763).Where(Число -> ЧислоГодится(Число)).ToArray;
Print(Отобрано.Count, Trunc(Отобрано.Average))
// Результат 16200 390088


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




Сообщение: 2588
ссылка на сообщение  Отправлено: 18.03.21 06:47. Заголовок: Alex61 пишет: Хм... ..


Alex61 пишет:
 цитата:
Хм... всего-то дел...

Уберите все готовые функции, которые написаны не вами, и модуль school. И будет то же самое.

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



Сообщение: 3
ссылка на сообщение  Отправлено: 19.03.21 01:23. Заголовок: "И на старуху бы..


"И на старуху бывает проруха" (с)

Во-первых, я же Вам не предлагаю писать на Питоне программы, убрав "библиотеки, написанные не Вами", несмотря на то, что Вы цитируете Канта ))
А во вторых, библиотеку School написал именно я. Для того, чтобы ей пользовались все желающие.

P.S. Поздравляю с новоязом - обращаясь к незнакомым людям писать "Вы" со строчной буквы, - но извините заранее: воспитание не позволяет это принять, поэтому пишу с прописной.

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




Сообщение: 2599
ссылка на сообщение  Отправлено: 19.03.21 09:17. Заголовок: С точки зрения форма..


С точки зрения формальной сдачи ЕГЭ библиотека school полезна. С точки зрения обучения - сомневаюсь. Было бы логично на время экзамена вырезать её. Но это мои личные взгляды, я их никому не навязываю.
P.S. Флейм с переходом на личности заканчиваем. Про правила употребления "Вы" и "вы" можно посмотреть, например, на сайте gramota.ru.

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



Сообщение: 4
ссылка на сообщение  Отправлено: 19.03.21 11:04. Заголовок: Куда логичнее было б..


Куда логичнее было бы строить задания экзаменационные нешаблонно. Давайте вообще на время экзаменов вырезать все библиотеки, выходящие за пределы реализации примитивного ввода/вывода. ЕГЭ - он по сути своей формален, так что говорить о неформальном подходе не приходится. Ну а Ваше личное мнение я понимаю так: надо вообще все уничтожить, что мешает продвигать Пайтон и всячески показывать его достоинства, скрывая недостатки. Но это уже предмет, лежащий в иной плоскости.

Что до ресурса gramota.ru, там однозначно указано, что "Вы" или "вы" в современном русском языке пишут в зависимости от желания указать степень уважения пишущего. Мое мнение - "вы" годится для более короткой дистанции. Врт цитата с упомянутого Вами ресурса:

 цитата:
вы, вас, вам, вaми, о вас и (как выражение уважения к адресату речи – одному лицу) Вы, Вас, Вам, Вaми, о Вас; ваш, вaше, вaшего, вaша, вaшей, мн. вaши, вaших и (как выражение уважения к адресату речи – одному лицу) Ваш, Вaше, Вaшего, Вaша, Вaшей, мн. Вaши, Вaших (Русский орфографический словарь РАН / Под ред. В. В. Лопатина, О. Е. Ивановой. – 4-е изд., испр. и доп. – М., 2012. С. 70. С. 106).



Так что флейм заканчиваю на том, что Ваша же ссылка еще раз убедила меня в своей правоте.

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




Сообщение: 2601
ссылка на сообщение  Отправлено: 19.03.21 13:39. Заголовок: Alex61 пишет: Давайт..


Alex61 пишет:
 цитата:
Давайте вообще на время экзаменов вырезать все библиотеки, выходящие за пределы реализации примитивного ввода/вывода.

Все дело в том, что когда учитель (или экзаменатор) дает задание найти, например, все делители числа или перевести число в систему с основанием 6, целью этого задания НЕ является нахождение всех делителей числа или перевод в другую систему.
 цитата:
а Ваше личное мнение я понимаю так: надо вообще все уничтожить, что мешает продвигать Пайтон и всячески показывать его достоинства, скрывая недостатки.

Заметьте, что это вы сами додумали.
 цитата:
Ваша же ссылка еще раз убедила меня в своей правоте.

Прочитайте, пожалуйста, там же "Вопросы Справочному бюро".

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



Сообщение: 5
ссылка на сообщение  Отправлено: 19.03.21 17:57. Заголовок: Alex61 пишет: Все д..


Alex61 пишет:

 цитата:
Все дело в том, что когда учитель (или экзаменатор) дает задание найти, например, все делители числа или перевести число в систему с основанием 6, целью этого задания НЕ является нахождение всех делителей числа или перевод в другую систему.


Вы ведь это пошутили, верно? Поиск всех делителей числа на самом деле не ставит задачи найти все делители числа, а перевод числа в некоторую систему счисления не ставит задачи такого перевода? Это театр абсурда просто. Если Вы хотели сказать, что учителя/преподавателя интересует алгоритм перевода, то причем тут составление программы? А если мы пишем программу, то как может быть, что ее результат не нужен? Написание ради процесса написания? "Фигня - война, а главное маневры" ?
И потом, стало быть, в случае сортировки мы можем пользоваться библиотекой и радостно восклицать, как это делают на стримах некоторые забавные приверженцы Пайтона, "... вот! У нас готовая сортировка, а в разных там паскалях такого нет!". Т.е. тут библиотечная сортировка вместо рукописной пузырьковой, вставками или иной Вас не смущает, потому что это Пайтон.
А если на занятии учитель хочет увидеть алгоритм, ему никто не мешает потребовать, чтобы библиотек не подключали - и все дела.

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

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