Tìm dãy số vừa là số nguyên tố vừa là số palindrome trong Pascal

Lập trình Pascal

Để cài đặt bài toán tìm dãy số vừa là số nguyên tố vừa là số palindrome từ 1 đến n trong Pascal, ta có thể sử dụng các hàm kiểm tra số nguyên tố và số palindrome như sau:

function is_prime(n: Integer): Boolean;
var
  i: Integer;
begin
  if n < 2 then
    Exit(False);
  for i := 2 to Trunc(Sqrt(n)) do
    if n mod i = 0 then
      Exit(False);
  Exit(True);
end;

function is_palindrome(n: Integer): Boolean;
var
  s: string;
begin
  s := IntToStr(n);
  Result := s = Copy(s, Length(s), -1);
end;

Hàm is_prime sử dụng thuật toán kiểm tra số nguyên tố đơn giản, với biến i chạy từ 2 đến căn bậc hai của n để kiểm tra xem n có chia hết cho một số nào đó từ 2 đến căn bậc hai của n hay không. Hàm is_palindrome sử dụng hàm Copy để lấy phần đầu hoặc phần cuối của chuỗi s, và so sánh hai phần này để kiểm tra xem n có phải là số palindrome hay không.

Sau đó, ta có thể sử dụng hai hàm này để kiểm tra các số từ 1 đến n và in ra các số nguyên tố palindrome bằng cách sử dụng một vòng lặp như sau:

var
  i, n: Integer;
begin
  n := 100;
  for i := 1 to n do
    if is_prime(i) and is_palindrome(i) then
      Writeln(i);
end.

Kết quả sẽ được in ra trên màn hình là danh sách các số nguyên tố palindrome từ 1 đến 100.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *