Bài 1: Yêu cầu: Em hãy viết chương trình nhập vào một số tự nhiên N và kiểm tra xem có thể biểu diễn N bằng tổng của hai hay nhiều số tự nhiên liên tiếp hay không? Nếu có thì in ra tất cả các cách biểu diễn đó. Nếu không thì ghi ra dòng chữ “Khong the bieu dien” Ví dụ: N=4 hoặc 8, thì in ra dòng “Khong the bieu dien” N=15 có 3 cách Cách 1: 7 8 Cách 2: 4 5 6 Cách 3: 1 2 3 4 5 Bài 2: Số nguyên tố là số tự nhiên chỉ chia hết cho 1 và chính nó. Yêu cầu: Viết chương trình nhập vào số nguyên dương N, hãy liệt kê ra màn hình n số Nguyên tố đầu tiên.
2 câu trả lời
BÀI 1:
var n,i,j,k,sum,dem,tong:longint;
a:array [1..1000] of longint;
begin
k:=0;
read(n);
for i:=1 to n-1 do
begin
sum:=i;
for j := i+1 to n-1 do
begin
if (sum<n) then sum:=sum+j
else if (sum>n) then begin sum :=0; break; end
else if (sum = n) then begin k:=k+1; a[k]:=j; break; end;
end;
end;
if k=0 then write('Khong the bieu dien');
for i:=1 to k do
begin
tong:=0;
while tong<n do
begin
dec(a[i]);
tong:=tong+a[i];
end;
end;
for i:=1 to k do
begin
tong:=0;
while tong<n do
begin
write(a[i],' ');
inc(a[i]);
tong:=tong+a[i];
end;
writeln;
end;
readln;
end.
BÀI 2:
var n,i,dem:longint;
function checkprime(i:longint):boolean;
var c:longint;
begin
if i=1 then exit(false);
if i=2 then exit(true);
for c:=2 to trunc(sqrt(n)) do if i mod c = 0 then exit(false) else exit(true);
end;
begin
read(n);
while dem<n do
begin
if checkprime(inc(i)) then write(i,' ');
inc(dem);
end;
readln;
end.
Bài 2:
function snt(x:integer):boolean;
var i:integer;
begin
snt:=true;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then snt:=false;
end;
var n,i,d:integer;
begin
write('N = '); readln(n);
d:=0; i:=2;
while d<n do
begin
if snt(i)=true then
begin
writeln(i);
inc(d);
end;
inc(i);
end;
readln
end.
Bài 1 vẫn đang cố gắng... @@