Пусть для целого n>1 функция f(n) равна наименьшему делителю числа n, большему 1. Массив задается с клавиатуры. Упорядочить элементы массива а по возрастанию в соответствии со след. критерием: элемент х считается «большим» элемента у б если f(x)>f(y). — Pascal(Паскаль)

uses crt;
function F(n:integer):integer;
var i:integer;
    b:boolean;
begin
i:=2;
b:=false;
while (i<=n)and not b do
if n mod i=0 then b:=true
else i:=i+1;
F:=i;
end;
var a:array[1..50] of integer;
    n,i,j,x:integer;
begin
clrscr;
write('n=');
readln(n);
writeln('Введите элементы масива:');
for i:=1 to n do
readln(a[i]);
clrscr;
writeln('Исходный массив:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
for i:=1 to n-1 do
for j:=i+1 to n do
if F(a[i])>F(a[j]) then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
writeln('По возрастанию наименьшего делителя:');
for i:=1 to n do
write(a[i],' ');
readln
end.

Leave a Comment

+ 3 = 4