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... @@