Số thân thiện

Xem dạng PDF

Gửi bài giải


Điểm: 0,05 (OI)
Giới hạn thời gian: 0.38s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Nguồn bài:
Sec. 9 Team Selection Test, District I HCMC, 2008
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

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 \leq a \leq b \leq 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.

Input

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.

Output

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

Sample Input

20 30

Sample Output

3

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    HuyDVC234  đã bình luận lúc 11, Tháng 11, 2025, 8:33

    include<bits/stdc++.h>

    using namespace std; long long n; long long Pow(int a, int b){ long long kq = 1; for(int i = 0; i < b; i++){ kq = a; } return kq; } long long Dao(long long n){ vector<int> f; int tam; while(n){ tam = n%10; n /= 10; f.push_back(tam); } tam = 0; reverse(f.begin(), f.end()); for(int i = 0; i < f.size(); i++){ tam += f[i]Pow(10,i); } return tam; } int main(){ int a, b, dem=0; cin >> a >> b; for(long long i = a; i <= b; i++) if(__gcd(i, Dao(i))==1) dem++; cout << dem; }


  • 0
    vominhmanh10  đã bình luận lúc 3, Tháng 11, 2025, 4:04 sửa 2

    đơn giản không:))

    import sys
    from math import gcd
    
    data = sys.stdin.read().split()
    
    def f(x):
        return int(str(x)[::-1])
    def main():
        a, b = map(int, data)
        cnt = 0
        for x in range(a, b + 1):
            if gcd(x, f(x)) == 1:
                cnt += 1
        print(cnt)
    main()