Đ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.