Cho mình xin thuật toán bài sắp xếp các số theo thứ tự giảm dần theo số ước vd Cac so da tao: 56,78,30,66 Sx: 78,30,56,66.1
1 câu trả lời
uses crt;
var n,i,j:byte;
a:array[1..100] of word;
tam:word;
function souoc(x:word):word;
var t:word;
begin
souoc:=2;
for t:=2 to n div 2 do
if n mod t=0 then inc(souoc);
end;
BEGIN
clrscr;
write('Nhap so luong so:'); readln(n);
for i:=1 to n do
begin
write('Nhap a[',i,']:');
readln(a[i]);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if (souoc(a[j])>souoc(a[i])) or ((souoc(a[j])=souoc(a[i])) and (a[j]>=a[i])) then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
write('Day so sau khi sap xep:');
for i:=1 to n do write(a[i],' ');
readln
END.
Chúc bạn học tốt.