Искал задачу в FAQ но не нашел.
Если кто знает как решать решите очень надо.
Дан массив натуральных чисел. Упорядочить его элементы методом выбора по убыванию наибольшего простого делителя.
( определение простоты чисел - здесь: Замечательные числа )
Function GetMaxSimpleDivider(X: Integer): Integer;
Begin
... { Тут находишь наибольший простой делитель числа X }
End;
...
For i := 1 To n Do
For j := n DownTo i+1 Do
{ Не просто сравнивать 2 элемента, а сравнивать результат функции }
If GetMaxSimpleDivider(ar[Pred(j)]) < GetMaxSimpleDivider(ar[j]) Then Begin
T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T
End