Đang tìm hiểu các thuật toán về số tự nhiên, Nguyên phát hiện ra số tự nhiên có rất nhiều tính chất thú vị. Ví dụ số hoàn hảo có tính chất: tổng các ước bằng 2 lần số đó, như số 6, số 24… Nhiều số tự nhiên khi tìm ước chung lớn nhất với số đảo ngược của nó bằng 1, những số như thế được gọi là số thân thiện. Chẳng hạn số 23, số đảo ngược của nó là 32, hai số này có ước chung lớn nhất là 1 nên số 23 là số thân thiện và 32 cũng là số thân thiện. Yêu cầu: Cho 2 số tự nhiên a, b (a

2 câu trả lời

uses crt;
var d:text; n,s:string; a,b,j,e,i,k,h,t:longint;
function uc(a,b:longint):longint;
   begin
      While a<>b do If a>b then a:=a-b else b:=b-a;
      If a=1 then writeln(i);
   end;
begin
clrscr;
assign(d,'input.pas');reset(d);
readln(d,k,h);
for i:=k to h do
begin
   s:='';
   str(i,n);
   for j:=length(n) downto 1 do s:=s+n[j];
   val(n,a,e);
   val(s,b,e);
   uc(a,b);
end;
close(d);
readln
end.

const fi='thanthien.inp';
      fo='thanthien.out';
var a,b:longint;
function daonguoc(x:longint):longint;
var s,st:ansistring;
    i,k:longint;
begin
        str(x,s);
        for i:=length(s) downto 1 do st:=st+s[i];
        val(st,k);
        exit(k);
end;
function check(x:longint):boolean;
var y,t:longint;
begin
        y:=daonguoc(x);
        while x>0 do
        begin
                t:=y mod x;
                y:=x;
                x:=t;
        end;
        if y=1 then exit(true);
        exit(false);
end;
procedure nhap;
begin
        assign(input,fi);
        reset(input);
        read(a,b);
        close(input);
end;
procedure xuat;
var i,dem:longint;
begin
        assign(output,fo);
        rewrite(output);
        for i:=a to b do
                if check(i) then inc(dem);

       write(dem);
        close(output);
end;
begin
        nhap;
        xuat;
end.

Câu hỏi trong lớp Xem thêm