Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Dãy A gồm N số nguyên dương a1, a2, ..., an được gọi là dãy số đặc biệt nếu thỏa 1 trong 2 điều kiện sau:
- Là dãy số giảm dần.
- Với mỗi phần tử ai, ai là số nguyên tố hoặc ai là ước của 1 trong những số trước nó trong dãy.
Input: Số N <=10.000
Output: Dãy số tìm đc, mỗi số cách nhau ít nhất 1 khoảng trắng.
Ví dụ:
Input: 12
Output: 12 11 7 6 5 4 3 2 1
var n:integer;
a:array[1..1000] of integer;
i,m:integer;
function nt(x:integer):boolean ;
var i:integer;
begin
if x<2 then exit(false);
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then exit(false);
exit(true);
end;
function uoc(x:integer):boolean;
var i:integer;
begin
uoc := false;
for i:=1 to m do
if a[i] mod x=0 then
exit(true);
end;
begin
readln(n);
m := 1;
a[1]:=n;
for i:=(n-1) downto 1 do
if nt(i) or uoc(i) then
begin
inc(m);
a[m]:=i;
end;
for i:=1 to m do
write(a[i],#32);
readln;
end.