Bài 14: Số nguyên tố đối xứng
Một sBài 14: Số nguyên tố đối xứng
Một số T được gọi là số nguyên tố đối xứng nếu thỏa mãn các yêu cầu sau:
– T là số nguyên tố
– T là một số đối xứng (đọc T từ trái qua phải thu được kết quả giống như đọc T từ phải qua trái). Ví dụ 12321 là một số đối xứng.
Yêu cầu: cho 2 số nguyên dương A và B, hãy tìm số lượng các số nguyên tố đối xứng T thỏa mãn A≤T≤B.
Dữ liệu: Vào từ file văn bản PRIME.INP gồm 1 dòng chứa 2 số nguyên dương A và B (104≤A { "@context": "https://schema.org", "@type": "QAPage", "mainEntity": { "@type": "Question", "name": " Bài 14: Số nguyên tố đối xứng Một sBài 14: Số nguyên tố đối xứng Một số T được gọi là số nguyên tố đối xứng nếu thỏa mãn các yêu cầu sau: - T là số ng", "text": "Bài 14: Số nguyên tố đối xứng Một sBài 14: Số nguyên tố đối xứng Một số T được gọi là số nguyên tố đối xứng nếu thỏa mãn các yêu cầu sau: - T là số nguyên tố - T là một số đối xứng (đọc T từ trái qua phải thu được kết quả giống như đọc T từ phải qua trái). Ví dụ 12321 là một số đối xứng. Yêu cầu: cho 2 số nguyên dương A và B, hãy tìm số lượng các số nguyên tố đối xứng T thỏa mãn A≤T≤B. Dữ liệu: Vào từ file văn bản PRIME.INP gồm 1 dòng chứa 2 số nguyên dương A và B (104≤A
const
fi=’PRIME.INP’;
fo=’PRIME.OUT’;
var a,b,t,d:longint;f:text;
(************************************************)
function nt(x:longint):boolean;
var h:longint;
begin
if x<2 then exit(false);
for h:=2 to trunc(sqrt(x)) do if x mod h=0 then exit(false);
exit(true);
end;
(************************************************)
function dx(x:longint):boolean;
var s,s1:string;h:longint;
begin
str(x,s);s1:=”;
for h:=length(s) downto 1 do s1:=s1+s[h];
if s1=s then exit(true);
exit(false);
end;
(************************************************)
begin
assign(f,fi);reset(f);
read(f,a,b);
close(f);
assign(f,fo);rewrite(f);
d:=0;
for t:=a to b do if (dx(t)) and (nt(t)) then d:=d+1;
write(f,d);
close(f);
end.
uses crt;
var f:text; i,a,b,d:longint;
function nt(a:longint):boolean;
var i:longint;
begin
i:=2;
while(a>1)and(a mod i<>0)do inc(i);
nt:=i=a;
end;
function ktdx(a:longint):boolean;
var dx,a1:longint;
begin
dx:=0; a1:=a;
repeat
dx:=dx*10+(a1 mod 10);
a1:=a1 div 10;
until a1=0;
ktdx:=dx=a;
end;
begin
clrscr;
assign(f,’PRIME.INP‘);reset(f);
readln(f,a,b);
close(f);
assign(f,’PRIME.OUT‘);rewrite(f);
for i:=a to b do
if (nt(i))and(ktdx(i)) then inc(D);
writeln(f,D);
close(f);
end.
Xin hay nhất