Số Đảo Ngược - Bài Tập Pascal Tổng Hợp

Số Đảo Ngược

 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.
Previous
Next Post »

13 nhận xét

Write nhận xét
Unknown
AUTHOR
lúc 19:33 25 tháng 8, 2017 delete

Như cc chứ hay lol j

Reply
avatar
Magi
AUTHOR
lúc 03:37 12 tháng 12, 2017 delete

Program Tim_so;
Const 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.

Reply
avatar
Unknown
AUTHOR
lúc 08:38 13 tháng 3, 2019 delete

USES CRT;
VAR N:INTEGER;
BEGIN
CLRSCR;
WRITE('NHAP N');READLN(N);
WHILE N<>0 DO
BEGIN
WRITE(N MOD 10);
N:=N DIV 10;
READLN;
END.

Reply
avatar
imei fukada
AUTHOR
lúc 19:47 23 tháng 5, 2021 delete

dme mày dài mới đúng, ngu

Reply
avatar
imei fukada
AUTHOR
lúc 19:49 23 tháng 5, 2021 delete

cho đáp án chuẩn rồi còn chê dài, thế ăn cứt ăn đb

Reply
avatar
Unknown
AUTHOR
lúc 20:36 24 tháng 8, 2021 delete

các ông cục súc thế

Reply
avatar
Unknown
AUTHOR
lúc 00:11 18 tháng 9, 2022 delete

Xin code c++ =)))))))

Reply
avatar