NKNUMFRE spoj – Số thân thiện

Nguồn đề bài: http://vn.spoj.com/problems/NKNUMFRE/

1. Đề bài NKNUMFRE spoj

Số tự nhiên có rất nhiều tính chất thú vị. Ví dụ với số 23, số đảo ngược của nó là 32. Hai số này có ước chung lớn nhất là 1. Những số như thế được gọi là số thân thiện, tức là số 23 được gọi là số thân thiện, số 32 cũng được gọi là số thân thiện.

Hãy nhập vào 2 số nguyên a,b (10≤a≤b≤30000). Hãy đếm xem trong khoảng từ a đến b (kể cả a và b) có bao nhiêu số thân thiện.

Dữ liệu

Bao gồm một dòng chứa 2 số a,b. Hai số được cách nhau bằng một khoảng trắng

Kết quả

Bao gồm một dòng là kết quả của bài toán.

Ví dụ

Dữ liệu
20 30

Kết quả
3

bài này khá đơn giản, đọc code sẽ hiểu ngay

2. code tham khảo NKNUMFRE spoj

program bt;

var     a,b:word;

function UCLN(a,b:longint):word;
var     r:word;
begin
        while a mod b <>0 do
                begin
                        r:=a mod b;
                        a:=b;
                        b:=r;
                end;
        exit(b);
end;

function sodao(n:word):longint;
var     tam:longint;
begin
        tam:=0;
        while N<>0 do
                begin
                        tam:=tam*10 + (n mod 10);
                        n:=n div 10;
                end;
        exit(tam);

end;

procedure xuli;
var     i:word;
        s:int64;
begin
        s:=0;
        for i:=a to b do
                if ucln(i,sodao(i))=1 then
                                inc(s);
        writeln(s);

end;

begin
        readln(a,b);
        xuli;
end.

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *