Trang chủ Tin Học Lớp 11 Cần gấp Vote 5 sao và ctlhn Giải bài bằng...

Cần gấp Vote 5 sao và ctlhn Giải bài bằng pascal, đầy đủ và chi tiếtBài 3. (5 điểm) Bảng số nguyên tố – NGUYENTO Cho một bảng A kích thước m dòng xn cột chứa

Câu hỏi :

Cần gấp Vote 5 sao và ctlhn Giải bài bằng pascal, đầy đủ và chi tiết

image

Lời giải 1 :

uses crt;
var
    pr: array[0..1000000] of longint;  // Mảng chưa số nguyên tố
    lpf: array[0..1000000] of longint; // Mảng chứa ước số nguyên tố nhỏ nhất
    cnt: longint;   // Số lượng số nguyên tố trong mảng pr
    
    a, pfs: array[0..1000, 0..1000] of longint;
    i, j, n, m, k: longint;
    c, r: longint;

// Sàng nguyên tố
procedure linear_sieve(n: longint);
var i, j: longint;
begin
    for i:=2 to n do begin
        if lpf[i] = 0 then begin
            inc(cnt); pr[cnt]:=i;
            lpf[i]:=i;
        end;
        j:=1;
        while (j <= cnt) and (pr[j] <= lpf[i]) and (pr[j] * i <= n) do begin
            lpf[i * pr[j]]:=pr[j];
            inc(j);
        end;
    end;
end;

// Hàm kiểm tra nguyên số (dựa vào sàng ở trên)
function isPrime(n: longint): boolean;
begin
    if n <= 1 then exit(false);
    exit(lpf[n] = n);
end;

// Các thuật sử dụng: Sàng nguyên tố, Mảng tổng dồn
begin
    clrscr;
    linear_sieve(1000000);
    
    readln(n, m, k);
    for i:=1 to n do
        for j:=1 to m do begin
            read(a[i][j]);
            pfs[i][j]:=pfs[i][j - 1] + pfs[i - 1][j] - pfs[i - 1][j - 1];
            if isPrime(a[i][j]) then inc(pfs[i][j]);
        end;
    readln;
    
    for i:=k to n do begin
        for j:=k to m do begin
            if pfs[i][j] - pfs[i - k][j] - pfs[i][j - k] + pfs[i - k][j - k] = k * k then begin
                for r:=i - k + 1 to i do begin
                    for c:=j - k + 1 to j do
                        write(a[r][c], ' ');
                    writeln;
                end;
                readln; exit;
            end;
        end;
    end;
    writeln(-1);
readln;
end.

Thảo luận

-- Mình mới học vài hàm cơ bản thôi, bạn giúp mình sửa thành dễ 1 tí với ạ
-- vậy chưa dùng sàng nguyên tố lần nào à v:
-- Dạ chưa
-- Bạn ơi, giúp mình với Mik đang cần gấp
-- Bạn ơi
-- Bạn ơi
-- Có gì giúp mình thêm hai câu này nha https://hoidap247.com/cau-hoi/3812538 https://hoidap247.com/cau-hoi/3812888
-- bạn ơi

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 11

Lớp 11 - Năm thứ hai ở cấp trung học phổ thông, gần đến năm cuối cấp nên học tập là nhiệm vụ quan trọng nhất. Nghe nhiều đến định hướng sau này rồi học đại học. Ôi nhiều lúc thật là sợ, hoang mang nhưng các em hãy tự tin và tìm dần điều mà mình muốn là trong tương lai nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK