Имеется ряд из N лампочек, которые пронумерованы от 1 до N. Изначально ни одна из лампочек не горит. Далее происходит K последовательных линейных инверсий этого ряда ламп. Под линейной инверсией понимается инверсия каждой P-й лампочки в ряде. Например, если P=3, то произойдет инверсия 3й, 6й, 9й и т.д. лампочек. Требуется определить: сколько горящих лампочек останется после реализации всех заданных линейных инверсий?   написать рабочую прогу на паскале

Вопрос от посетителя:

Имеется ряд из N лампочек, которые пронумерованы от 1 до N. Изначально ни одна из лампочек не горит. Далее происходит K последовательных линейных инверсий этого ряда ламп. Под линейной инверсией понимается инверсия каждой P-й лампочки в ряде. Например, если P=3, то произойдет инверсия 3й, 6й, 9й и т.д. лампочек.

Требуется определить: сколько горящих лампочек останется после реализации всех заданных линейных инверсий?

 

написать рабочую прогу на паскале

Илюха отвечает:

program xxx;
var i, j, k, n, p, s : integer;
    a : array [1..20] of integer;
begin
  write (‘введите количество инверсий -‘);
  readln(k);
  write (‘введите количество ламп -‘);
  readln(n);
  for i:=1 to n do
    a[i]:=0;
  for i:=1 to k do
    begin
      write (‘введите инверсию P-‘);
      readln(p);
      j:=p;
      while j<=n do
        begin
          if a[j]=0 then a[j]:=1 else a[j]:=0;
          j:=j+p
        end
    end;
  s:=0;
  for i:=1 to n do
    if a[i]=1 then s:=s+1;
  write (‘Ламп горит -‘, s);
  readln
end.

Добавить свой ответ