Trang chủ Tin Học Lớp 9 Bài 1: SỐ NGUYÊN TỐ An là người mê thích...

Bài 1: SỐ NGUYÊN TỐ An là người mê thích học số, một ngày nọ An rủ Hoa chơi tìm các số nguyên tố được giấu trong một ô thuộc một bảng gồm nhiều ô vuông có kích

Câu hỏi :

Bài 1: SỐ NGUYÊN TỐ An là người mê thích học số, một ngày nọ An rủ Hoa chơi tìm các số nguyên tố được giấu trong một ô thuộc một bảng gồm nhiều ô vuông có kích thước MxN, mỗi ô mang 1 giá trị Aij (2<Aij<=1000000). Yêu cầu: Tìm số nguyên tố lớn nhất trên đường chéo chính và nhỏ nhất trên đường chéo phụ của bảng gồm nhiều ô vuông đã cho. Tên file bài làm: SNT.PAS Dữ liệu vào: Cho trong file văn bản SNT.INP gồm: - Dòng đầu tiên ghi các số N, M (1 < N, M <= 100). - N dòng tiếp theo, mỗi dòng ghi M số nguyên Aij và cách nhau bởi một dấu cách. Dữ liệu ra: Ghi ra file văn bản SNT.OUT gồm lần lượt hai số nguyên tìm được theo yêu cầu. Mỗi số cách nhau một dấu cách. Nếu nhập dữ liệu vào sai so với điều kiện thì ghi số -1. Ví dụ: SNT.INP SNT.OUT 4 4 13 5 13 8 90 9 78 9 82 8 81 5 10 4 23 5 56 7 code pascal ạ

Lời giải 1 :

program SNT;
var
  N, M, i, j, maxPrimeDiagonal, minPrimeDiagonal, Aij: integer;

function isPrime(num: integer): boolean;
var
  i: integer;
begin
  isPrime := True;
  if num < 2 then
    isPrime := False
  else
    for i := 2 to Trunc(Sqrt(num)) do
      if num mod i = 0 then
      begin
        isPrime := False;
        Break;
      end;
end;

begin
  // Đọc dữ liệu vào từ file
  assign(input, 'SNT.INP');
  reset(input);
  readln(N, M);

  // Kiểm tra điều kiện N và M
  if (N <= 1) or (M <= 1) or (N > 100) or (M > 100) then
  begin
    writeln('-1');
    Close(input);
    Halt;
  end;

  maxPrimeDiagonal := 0;
  minPrimeDiagonal := 1000001;

  // Tìm số nguyên tố lớn nhất trên đường chéo chính
  for i := 1 to N do
  begin
    for j := 1 to M do
    begin
      read(Aij);

      // Kiểm tra điều kiện Aij
      if (Aij <= 2) or (Aij > 1000000) then
      begin
        writeln('-1');
        Close(input);
        Halt;
      end;

      // Kiểm tra đường chéo chính
      if i = j then
        if (Aij > maxPrimeDiagonal) and isPrime(Aij) then
          maxPrimeDiagonal := Aij;

      // Kiểm tra đường chéo phụ
      if (i + j = N + 1) and (Aij < minPrimeDiagonal) and isPrime(Aij) then
        minPrimeDiagonal := Aij;
    end;
    readln; // Đọc kí tự xuống dòng sau mỗi hàng
  end;

  // Ghi kết quả ra file
  assign(output, 'SNT.OUT');
  rewrite(output);
  writeln(maxPrimeDiagonal, ' ', minPrimeDiagonal);
  Close(output);
end.

Bạn có biết?

Tin học 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. 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. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, chúng ta sắp phải bước vào một kỳ thi căng thẳng và sắp chia tay bạn bè, thầy cô. Áp lực từ kỳ vọng của phụ huynh và tương lai lên cấp 3 thật là lớn, nhưng hãy tin vào bản thân và giữ vững sự tự tin!

Nguồn :

sưu tập

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

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

Copyright © 2021 HOCTAPSGK