Số nguyên tố đối xứng

1,572 views
Skip to first unread message

tienph...@gmail.com

unread,
Feb 19, 2013, 8:26:48 PM2/19/13
to thcsthait...@googlegroups.com

Bài 2:         Số nguyên tố đối xứng

Một số nguyên dương 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à một 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à 1 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 NTDX.INP gồm 1 dòng chứa 2 số nguyên dương A và B cách nhau 1 dấu cách (104 ≤ A < B <105)

Kết quả: ghi vào file văn bản NTDX.INP một số nguyên là số lượng số nguyên tố tìm được.

VD       

NTDX.inp

NTDX.out

11111   22222

23

tienph...@gmail.com

unread,
Feb 19, 2013, 8:27:48 PM2/19/13
to thcsthait...@googlegroups.com, tienph...@gmail.com
var
        a,b:longint;
        f:text;
procedure input(var a,b:longint);
        var
                f:text;
        begin
                assign(f,'ntdx.inp');
                reset(f);
                read(f,a,b);
                close(f);
        end;
function nguyento(x:longint):boolean;
        var
                i:integer;
                s:string;
        begin
                i:=2;
                while (x mod i<>0) and (i<sqrt(x)) do
                        i:=i+1;
                nguyento:= i>sqrt(x);
        end;
function doixung(x:longint):boolean;
        var
                s,sdao:string;
                xdao:longint;
                i,code:integer;
        begin
                str(x,s);
                sdao:='';
                for i:=length(s) downto 1 do
                        sdao:=sdao+s[i];
                val(sdao,xdao,code);
                if x-xdao=0 then
                        doixung:=true
                else
                        doixung:=false;
        end;
function soluong(a,b:longint):integer;
        var
                i:integer;
        begin
                soluong:=0;
                for i:=a to b do
                        if nguyento(i) and doixung(i) then
                                soluong:=soluong+1;
        end;

{CHUONG TRINH CHINH}
BEGIN
        input(a,b);
        assign(f,'ntdx.out');
        rewrite(f);
        write(f,soluong(a,b));
        close(f);
END.
Reply all
Reply to author
Forward
0 new messages