Автор | Сообщение |
|
Отправлено: 26.12.21 21:51. Заголовок: Задача 25.183 Не сходится ответ
В результате написания программы получились следующие числа: 5000211 171 Само число: 200000061 Это его первые 5 делителей: 3 9 19 57 171 194481 49 Само число: 200000115 Это его первые 5 делителей: 3 7 9 21 49 24105991 91 200000255 7 13 41 71 91 396981 39 200000385 3 9 13 29 39 5000211 171 200000403 3 9 19 57 171 А вот какие указаны в ответе: 5000211 171 5000211 171 391391 23 122124411 227 1712421 81 Что не так?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| Администратор
|
Сообщение: 3137
|
|
Отправлено: 27.12.21 06:34. Заголовок: Галина А. пишет: 194..
Галина А. пишет: цитата: | 194481 49 Само число: 200000115 Это его первые 5 делителей: 3 7 9 21 49 |
|
Неверно. Очевидно, что оно делится на 5. Поэтому 3, 5, 7, 9, 15.
|
|
|
|
Отправлено: 30.12.21 18:26. Заголовок: Спасибо..
Спасибо
|
|
|
|
Отправлено: 02.05.22 15:15. Заголовок: А у меня ответы другие
5000211 171 70176851 28641 5000211 171 165205521 451469 15321581 145667 391391 23 122124411 227 1712421 81 194481 49 Скрытый текст uses school; for var i:=200000001 to 200001501 do begin var d:=divisors(i); d.Remove(1); d.Remove(i); if d.count>=5 then begin var p:=d[0]*d[1]*d[2]*d[3]*d[4]; if (p mod 10=1) and (p<= i) then println(p,d[4]); end; end;
|
|
|
|
|
Отправлено: 03.05.22 17:04. Заголовок: Вот решение на Паскале:
uses school; for var x:=200000001 to 255000000 do begin var p:=1bi; var l:=x.divizors; if l.Count>6 then begin for var i:=1 to 5 do p*=l; if (p<=x) and (p mod 10=1) then println(x,p,l[5]); end; end; 5000211 171 5000211 171 391391 23 122124411 227 1712421 81
|
|
|
|
Отправлено: 03.05.22 20:55. Заголовок: У меня ваша программа выдает ошибку.
У меня ваша программа выдает ошибку. Нельзя преобразовать тип List<integer> к System.Numerics.BigInteger. Подскажите, где у меня в программе ошибка? У нас принцип одинаковый. У меня список делителей, удаляю первый и последний, ищу произведение 5 делителей, если выполняется условие, то печатаю.
|
|
|
|
Отправлено: 04.05.22 09:48. Заголовок: Оксана71 1) зачем уд..
Оксана71 1) зачем удалять элементы списка, это не нужно... 2) произведение надо делать в цикле... при Вашем произведении выводит неправильные числа...
|
|
|
|
Отправлено: 06.05.22 14:51. Заголовок: Я удаляю единицу и с..
Я удаляю единицу и само число из списка.( чтобы были только нетривиальные делители) Для подсчета произведения беру с 0 по 4 элемент списка. Я вижу, что программа выдает не те числа. Не могу разобраться-почему? И какая разница считать произведение циклом или var p:=d[0]*d[1]*d[2]*d[3]*d[4];???
|
|
|
|
Отправлено: 03.05.22 21:29. Заголовок: Ещё через последовательность
## uses School; (200000001..MaxInt) .Select(n -> n.Divisors) .Where(s -> s.Count >= 7) .Select(s -> (s[^1], s[5], s[1:6].Product(p -> BigInteger(p)))) .Where(s -> (s[2] mod 10 = 1) and (s[2] <= s[0])) .Take(5) .PrintLines(s -> $'{s[2]} {s[1]}')
|
|
|
|