ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1118. Нетривиальные числа

why i got wrong answer?
Послано qwt 28 апр 2002 19:30
var
  z,y,x,a,b,tt,i,j,k,p,q,r:longint;
  ss:array[1..10000] of longint;
  s:string;
begin
  tt:=1;ss[1]:=2;
  for i:=3 to trunc(sqrt(1000000)) do begin
    for j:=1 to tt do if (i mod ss[j]=0)or(ss[j]>trunc(sqrt(i))) then
break;
    if i mod ss[j]<>0 then begin
      inc(tt);
      ss[tt]:=i;
    end;
  end;
  readln(a,b);
  for y:=a to b do begin
    q:=1;
    x:=y;
    r:=1;
    k:=1;
    while (x<>1 )and(k<>tt) do begin
      for j:=k to tt do
        if x mod ss[j]=0 then break;
      k:=j;
      if x mod ss[j]=0 then begin
        z:=1;
        p:=1;
        while x mod ss[j]=0 do begin
          z:=z*ss[j];
          p:=z+p;
          q:=q*ss[j];
          x:=x div ss[j];
        end;
        r:=r*p;
        if (r>=2*q) then break;
      end;
    end;
    if x<>1 then begin r:=r*(x+1);q:=y;end;
    if r<2*q then begin

      writeln(y);
      halt;
    end;
  end;
end.