Форум » Обработка целых чисел » Задача 25.183 Не сходится ответ » Ответить

Задача 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 Что не так?

Ответов - 8

Поляков: Галина А. пишет: 194481 49 Само число: 200000115 Это его первые 5 делителей: 3 7 9 21 49 Неверно. Очевидно, что оно делится на 5. Поэтому 3, 5, 7, 9, 15.

Галина А.: Спасибо

Оксана71: 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;


timsc1: 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

Оксана71: У меня ваша программа выдает ошибку. Нельзя преобразовать тип List<integer> к System.Numerics.BigInteger. Подскажите, где у меня в программе ошибка? У нас принцип одинаковый. У меня список делителей, удаляю первый и последний, ищу произведение 5 делителей, если выполняется условие, то печатаю.

timsc1: Оксана71 1) зачем удалять элементы списка, это не нужно... 2) произведение надо делать в цикле... при Вашем произведении выводит неправильные числа...

Оксана71: Я удаляю единицу и само число из списка.( чтобы были только нетривиальные делители) Для подсчета произведения беру с 0 по 4 элемент списка. Я вижу, что программа выдает не те числа. Не могу разобраться-почему? И какая разница считать произведение циклом или var p:=d[0]*d[1]*d[2]*d[3]*d[4];???

ivackov.sergey: ## 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]}')



полная версия страницы