Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Tập A được xác định theo quy tắc:
- 1 thuộc A
- Nếu k thuộc A thì
- 2k+1 thuộc A
- 3k+1 thuộc A
Nhập N từ bàn phím ⇒ Xuất ra N số đầu tiên trong tập A
Ví dụ: N=8 ⇒ 1 3 4 7 9 10 13 15
var a:array[1..100000] of char;
i,j,n,m:integer;
begin
readln(n);
j := 1;
i := 1;
a[1]:='x';
repeat
if a[i]='x' then
begin
if (a[2*i+1]<>'x') and (j < n) then
begin
a[2*i+1]:='x';
inc(j);
m:=2*i+1;
end;
if (a[3*i+1]<>'x') and (j < n) then
begin
a[3*i+1]:='x';
inc(j);
m:=3*i+1;
end;
inc(i);
end;
if a[i]<>'x' then
inc(i);
until j>=n;
for i:=1 to m do
if a[i]='x' then write(i,#32);
readln;
end.