Показать сообщение отдельно
Старый 26.02.2012, 10:35   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Kazelina Посмотреть сообщение
А как же исправить?
Например, так:
Код:
var
 n,i,m:integer;
 b:real;
 f,g:text;
Begin
 assign(f,'input.txt');
 assign(g,'output.txt');
 reset(f);
 rewrite(g);
 readln(f,n);
 if (n>3) then
  begin
   b:=sqrt(n);
   if (b-Round(b)=0) then
    begin
     i:=1;
     repeat
      Inc(i);
      m:=Round(b) mod i;
     until m=0;
     If i=Round(b) then write(g,'Yes')
     else write(g,'No');
    end
   else write(g,'No');
  end
 else
  write(g,'No');
 close(f);
 close(g);
End.
Обратите внимание на изменение первого условия: вместо
if (n>=0) then
поставлено
if (n>3) then
Это важно: иначе при вводе 1, 2 или 3 возникнет ошибка зацикливания.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070