Есть задание:
В голове крутиться мысль про использование операторов For, только никак не могу ее прояснить. Ведь множителей, как я понял, может быть и два, и три, и десять? Как узнать, сколько именно их должно быть?
			
		Модератор: Модераторы
var
   numb, powers: array [1..100] of integer;
   c, n, n1, i: integer;
begin
   c:= 120;
   n:= 1;
   n1:= 0;
   while c <> 1 do
   begin
      i:= 2;
      while c mod i <> 0 do
        Inc(i);
      Inc(n1);
      if n1 = 1 then
      begin
         numb[n]:= i;
         powers[n]:= 1;
      end
      else if numb[n] = i then Inc(powers[n])
      else 
      begin
         Inc(n);
         numb[n]:= i;
         powers[n]:= 1;
      end;
      c:= c div i;
   end;
   writeln(n);
   write('num = ');
   for i:= 1 to n do
   begin
     write(numb[i], ' ^ ', powers[i]);
     if i <> n then write(' * ');
   end;
   writeln;
end.
Чегой-то у нас ветка в решебник превращается

 
 
var
  N: Integer;
  x, p: Integer;
begin
  readln(N);
  if N <= 0 then
  begin
    writeln('Error: N <= 0');
    exit;
  end; // if
  if N <= 1 then
  begin
    writeln(1);
    exit;
  end; // if
  x := 2;
  while x < sqrt(N) do
  begin
    if (N mod x) = 0 then
    begin
      p := 1;
      N := N div x;
      while (N mod x) = 0 do
      begin
        N := N div x;
        p := p + 1;
      end; // if
      writeln(x, '^', p);
    end; // if
    x := x + 2;
  end; // while
  if N > 1 then
  begin
    writeln(N, '^1');
  end; // if
end.


и// if
в некоторых местах программы? Это ты комментарий так обозначил? Комментарии же вроде фигурными скобками {...} обозначаются.// while


Deepthroat писал(а):Скачайте fpc и тренируйтесь в нем.


Вернуться в Обучение Free Pascal
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1