суббота, 19 декабря 2009 г.

количество делителей

Вот задание: Количество Делителей. Будем называть количество делителей числа т его красотой. Например, карсота числа 12=6.
Требуется написать программу, которая по числу k(1<=k<=10^9) найдётчисло с максимальной красотой, не превышающее k. Вот напишите код на паскале если не сложно
function krasota(n: integer): integer;
var
   i: integer;
   k: integer;
begin
   k:=0;
   for i:=1 to n do begin
      if (n mod i) = 0 then begin
         inc(k);
      end;
   end;
   krasota:=k;
end;

var
   m: integer;
   n: integer;
   max_n: integer;
   max_krasota: integer;
   k: integer;
begin
   write('считать до: ');
   read(m);

   max_n:=-1;
   max_krasota:=0;

   for n:=1 to m do begin
      k:=krasota(n);
      if k > max_krasota then begin
          max_krasota:=k;
          max_n:=n;
      end;
   end;

   writeln('число с максимальной красотой ', max_n, ' = ', max_krasota);
end.

умышленно не написал от 1 до 10^9 - это будет очень долго считать, но просто чтобы можно было проверить правильность работы - вводим 10000

вывод
искать до: 10000
число с максимальной красотой 7560 = 64

Комментариев нет:

Отправить комментарий