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

Задача 4749

Four: Не сошелся ответ (последнее число). Ваш ответ - 2569999 467999 2444457 4457789 4446677 Мой ответ- 2569999 467999 2444457 4457789 333479

Ответов - 5

patnikk:

Four: Беспонятия как прикрепить файл, так что прикрепляю код: function f(n: integer): boolean; var a, b, i: integer; begin f := true; while n >= 10 do begin a := n div 10 mod 10; b := n mod 10; if not(b >= a) then begin f := false; break; end; n := n div 10; end; end; var a, b, c, i, s, j, l, k, d: integer; begin k := 0; i := 10000001; while k < 5 do begin s := 0; l := 0; for j := 2 to round(sqrt(i)) do begin if i mod j = 0 then begin d := i div j; s := s + d; inc(l); if l = 3 then break; end; end; if (s <> 0) and (f(s)) and (l = 3) then begin inc(k); writeln(s); end; inc(i); end; end. P.S. Число 333479 получается из 10005817, а число 4446677 из 13340031, а так как нам нужно наименьшее, то, вероятно, 333479 и должно являться правильном ответом :|

Поляков: Four пишет: а число 4446677 из 1334003 Число 4446677 получается из 10005003. Программу нужно оформлять в тег [pre2] (см. замечание в желтой рамке вверху).


Four: Спасибо за замечание: Число 4446677 получается из 10005003 Понял свою ошибку.

patnikk: [pre2] ### uses school; (10000001..10005111).Wh(x -> x.divisorscount > 4) .Sel(x -> x.Divisors[1:^1].TakeLast(3).Sum) .Where(sd -> sd.digits.pairwise.All(\(a,b)-> a <= b)).printlines [/pre2]



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