Задана последовательность  N  вещественных чисел. Определите, можно ли так переставить ее элементы, чтобы они образовали геометрическую прогрессию — Pascal(Паскаль)

uses crt;
const nmax=20;
var a:array[1..nmax] of integer;
    n,i,j,x:integer;
    f:boolean;
begin
clrscr;
repeat
write('Размер последовательности до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите элементы последовательноти, натуральные числа:');
for i:=1 to n do
 begin
  repeat
  write('a[',i,']=');
  readln(a[i]);
  until a[i]>0;
 end;
clrscr;
writeln('Исходная последовтельность:');
for i:=1 to n do
write(a[i],' ');
writeln;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
f:=true;
i:=2;
x:=a[2] div a[1];
while(i<n)and f do
if (a[i] mod a[i-1]<>0)and(a[i]<>a[i-1]*x) then f:=false
else i:=i+1;
if f then
 begin
  writeln('Геометрическую прогрессию составить можно');
  for i:=1 to n do
  write(a[i],' ');
 end
else writeln('Геометрическую прогрессию составить нельзя');
readln
end.

Leave a Comment

67 − = 65