OPTADS360
AANETWORK
AMBIENT
YOMEDIA
Banner-Video
IN_IMAGE
  • Câu hỏi:

    Viết chương trình nhập vào một dãy các số nguyên và nhập giá trị x, rồi đếm xem trong dãy có mặt bao nhiêu số x ?

    Lời giải tham khảo:

    - Ý tưởng thuật toán.

                + Gán một biến dem=0

                + Nhập số lượng phần tử của mảng

                + Cho một biến chạy từ đầu mảng đến cuối mảng. Khi chạy đến đâu thì nhập giá trị đến đó, kiểm tra giá trị vừa nhập vào có phải là số nguyên tố hay không. Nếu giá trị vừa nhập là số nguyên tố thì tăng biến “dem” lên một đơn vị.

                + In mảng vừa nhập ra màn hình

                + In biến “dem” ra màn hình

    - Thuật toán.

                + Bước 1: Nhập số lượng phần tử n

                + Bước 2: dem ←0;

                + Bước 3:

                            - Bước 3.1: i←1

                            - Bước 3.2: Kiểm tra i với n. Nếu i<= n thì

                                        + Nhập giá trị cho phẩn tử a[i]

                                        + Kiểm tra a[i]:

                                                    Bước 3.2.1: bl←True

                                                    Bước 3.2.2:

                                                          - Buớc 3.2.2.1: Nếu a[i]<=1 thì bl=false

     - Bước 3.2.2.2: Ngược lại nếu a[i]<4 thì bl=true

     - Bước 3.2.2.3: Ngược lại j ←2

    - Bước 3.2.2.4: Nếu a[i] chia j mà dư =0 thì bl←False

    - Bước 3.2.2.5: j←j+1

    - Bước 3.2.2.6: Nếu j > Trunc(sqrt(a[i])) thì tới bước 4, ngược lại thì quay lại bước 3.2.2.4 Kiểm tra bl

                                                                - Nếu bl=true thì dem← dem+1

                + Bước 4: In ra mảng vừa nhập, in đếm và kết thúc

    - Chương trình nguồn.

    Program NguyenTo;
    Uses

    Crt;

    var a:array [1..1000] of integer;

          i,j,n,dem:integer;

          bl:boolean;

    begin

    dem:=0;

    write('nhap n'); readln(n);

    for i:=1 to n do

            begin

                write('a[',i,']='); readln(a[i]);

            end;

            for i:=1 to n do

                begin

                            if a[i]<=1 then bl:=false

                            else if a[i]<4 then bl:=true

                            else for j:=2 to trunc(sqrt(a[i])) do

                            if a[i] mod j = 0 then bl:=false;

                            if bl=true then dem:=dem+1;

                 end;

    for i:=1 to n do write(a[i]);

    writeln;

    write('mang da cho co so phan tu nguyen to la',dem);

    readln

    end.

    Hãy trả lời câu hỏi trước khi xem đáp án và lời giải

Câu hỏi này thuộc đề thi trắc nghiệm dưới đây, bấm vào Bắt đầu thi để làm toàn bài

ADSENSE/
QUẢNG CÁO
 

 

CÂU HỎI KHÁC

NONE
OFF