Cho số nguyên dương X, khi đảo ngược trật tự các chữ
số của X ta sẽ thu được một số nguyên dương Y, Y
được gọi là số đảo ngược của X.
Ví dụ: X = 613 thì Y = 316 là số đảo ngược của X.
Số nguyên dương Y được gọi là số nguyên tố nếu nó
chỉ có hai ước số là 1 và chính nó, số 1 không phải
là số nguyên tố.
Cho hai số nguyên dương P và Q (1 ≤ P ≤
Q ≤ 2´109;
Q - P ≤ 105).
Yêu
cầu: Hãy tìm tất cả các số
nguyên dương X nằm thỏa mãn P ≤ X ≤ Q và số đảo
ngược của số X là số nguyên tố.
Dữ
liệu vào: Cho trong file văn
bản TIMSO.INP có cấu trúc như sau:
-
Dòng 1: Ghi hai số nguyên dương P
Q, hai số được ghi cách nhau ít nhất một dấu cách.
Dữ
liệu ra: Ghi ra file văn bản
TIMSO.OUT trên nhiều dòng, mỗi dòng ghi một số nguyên X
tìm dược.
Ví dụ:
TIMSO.INP
|
TIMSO.OUT
|
10 19
|
11
13
14
16
17
|
var i,j,k,n,m:longint;
f1,f2:text;
S,St:string;
function
ktsnt(n:qword):boolean;
var k:qword;
begin
ktsnt:=false;
k:=2;
if n<2 then
exit;
if n=2 then
ktsnt:=true;
while k*k <= n
do
begin
if n mod k
= 0 then exit;
inc(k);
end;
ktsnt:=true;
end;
{---------------------------------------------------------------}
function
daonguoc(n:qword):boolean;
begin
str(n,S);St:='';
for i:=length(S)
downto 1 do St:=St+S[i];
val(St,k);
if ktsnt(k) then
daonguoc:=true else daonguoc:=false;
end;
{---------------------------------------------------------------}
begin
assign(f1,'daonguoc.inp');reset(f1);
assign(f2,'daonguoc.out');rewrite(f2);
readln(f1,n,m);
for j:=n to m do if
daonguoc(j) then writeln(f2,j);
close(f1);close(f2);
end.
Sign up here with your email
13 nhận xét
Write nhận xéthay lắm
ReplyNhư cc chứ hay lol j
ReplyProgram Tim_so;
ReplyConst fi='TIMSO.INP';
fo='TIMSO.OUT' ;
Var P,Q:longint;
Time:Longint;
Times:Longint absolute 0:$46C;
Function NT(K:longint):Boolean;
Var Can,i:Longint;
Begin
If (K=2) or (K=3) then Begin NT:=True;Exit; End;
If (K<2) or (K mod 2 = 0) or (K mod 3 = 0) then
Begin NT:=False; Exit; End;
NT:=True;
i:=5;
Can:=Trunc(sqrt(K));
While i<=Can do
Begin
if (K mod i = 0) or (K mod (i+2) =0) then
Begin NT:=False; Exit; End
ELse inc(i,6);
End;
End;
Function Daoso(N:longint):longint;
Var S:longint;
Begin
S:=0;
While N<>0 do
Begin
S:=S*10+ (N mod 10);
N:=N div 10;
End;
Daoso:=S;
End;
Procedure Read_Data;
Var F:text;
Begin
Assign(f,fi);
Reset(f);
Read(f,P,Q);
Close(f);
End;
Procedure Write_Data;
Var f:text;
j:longint;
Begin
Assign(f,fo);
Rewrite(f);
for j:=P to Q do
if NT(Daoso(j)) then Writeln(f,j);
Close(f);
End;
BEGIN
Time:=Times;
Read_Data;
Write_Data;
Writeln((Times-Time)/18.2:0:2);
Readln;
END.
quá dài
ReplyDài thế
ReplyUSES CRT;
ReplyVAR N:INTEGER;
BEGIN
CLRSCR;
WRITE('NHAP N');READLN(N);
WHILE N<>0 DO
BEGIN
WRITE(N MOD 10);
N:=N DIV 10;
READLN;
END.
ngắn thế
Replydme mày dài mới đúng, ngu
Replycho đáp án chuẩn rồi còn chê dài, thế ăn cứt ăn đb
Replycác ông cục súc thế
Replynhư cc
ReplyXin code c++ =)))))))
Replysúc vật chúa
ReplyConversionConversion EmoticonEmoticon