Условие этой простое. найдите наименьшее k такое, что k! делится на n без остатка. k! = 1 · 2 · 3 · · (k − 1) · k. формат входных данных в первой и единственной строке дано число n (1 ⩽ n ⩽ 109).

dasha18s10 dasha18s10    3   13.08.2019 07:30    0

Ответы
ytytuty ytytuty  04.10.2020 15:22
Var k,n,d,m,s:integer;
begin
 k := 1;
 d := 2;
 read(n);
 while n > 1 do
  begin
  s := 0;
  m := 1;
  while n mod d = 0 do
    begin
    if m mod d <> 0 then
      begin
      s := s + d;
      m := s;
      end;
    n := n div d;
    m := m div d;
    end;
  if s > k then k := s;
  d := d + 1
  end;
 writeln(k)
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика