1.5.2 Prime Palindromes

Prime Palindromes

The number 151 is a prime palindrome because it is both a prime number and a palindrome (it is the same number when read forward as backward). Write a program that finds all prime palindromes in the range of two supplied numbers a and b (5 <= a < b <= 100,000,000); both a and b are considered to be within the range .

PROGRAM NAME: pprime

INPUT FORMAT

Line 1: Two integers, a and b

SAMPLE INPUT (file pprime.in)

5 500

OUTPUT FORMAT

The list of palindromic primes in numerical order, one per line.

SAMPLE OUTPUT (file pprime.out)

5
7
11
101
131
151
181
191
313
353
373
383

HINTS (use them carefully!)

{
ID: makeeca1
PROG: pprime
LANG: PASCAL
}
program pprime;
const b:array[1..9]of longint=(10,0,100,0,1000,0,10000,0,100000);
var i,j,k,n,l,r:longint;
    s:string;
function check(x:longint):boolean;
var i:longint;
begin
  if x=1 then exit(true);
  for i:=2 to trunc(sqrt(x))do
  if x mod i =0 then exit(false);
  exit(true);
end;
begin
  assign(input,'pprime.in');reset(input);
  assign(output,'pprime.out');rewrite(output);
  readln(l,r);
  n:=1;
  for i:=1 to 9 do
    if i and 1 =1 then
      while n<b[i]do
      begin
        str(n,s);
        j:=length(s)-1;
        while j>=1 do
        begin
          s:=s+s[j];
          dec(j);
        end;
        val(s,k);
        if (k>=l)and(k<=r)and(check(k))then writeln(k);
        inc(n);
      end else if (i=2)and(l<=11)and(r>=11)then writeln(11);
  close(input);
  close(output);
end.
原文地址:https://www.cnblogs.com/makeecat/p/3274526.html