UOC1 - Tính tổng ước 1

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Cho hai số nguyên dương ~A~ và ~B~. Tính tổng các số nguyên dương là ước của ~A~ nhưng không là ước của ~B~.

Input

  • Gồm một dòng duy nhất chứa hai số nguyên dương ~A~ và ~B~ được ghi cách nhau một dấu cách.

Giới hạn:

  • ~80\%~ số điểm có ~A, B ≤ 10^6~
  • ~20\%~ số điểm có ~10^6 < ~A~ ≤ 10^9~

Output

  • Một dòng duy nhất ghi số nguyên là đáp số bài toán.

Sample

Input #1
15 25
Output #1
18

Hint

  • Các số nguyên dương là ước của ~15~ nhưng không là ước của ~25~ gồm: ~3~ và ~15~. Do đó tổng bằng ~18~.

Problem source: Chuyên Sơn La Online Judge


Bình luận

Please read the guidelines before commenting.



  • 0
    nguyenbeodeptrai  đã bình luận lúc 25, Tháng 2, 2026, 10:46

    là 0 ấy


  • 0
    nguyenbeodeptrai  đã bình luận lúc 25, Tháng 2, 2026, 10:41

    include <iostream>

    using namespace std; long long A,B,i,l; int main() { cin>>A>>B; for(i=1;i<=A;i=i+1) { if(A%i==0&&B%i!=0) { l+=i; } } cout<<l; }


  • 0
    nhankiettvt  đã bình luận lúc 7, Tháng 1, 2026, 15:01

    CODE FULL AC CHO AE

    #include <bits/stdc++.h>
    using namespace std;
    using ll = long long;
    
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        ll A, B;
        cin >> A >> B;
    
        ll sum = 0;
        for (ll i = 1; i * i <= A; i++)
        {
            if (A % i == 0)
            {
                // i là ước
                if (B % i != 0)
                    sum += i;
                // A/i là ước khác
                if (i != A / i && B % (A / i) != 0)
                    sum += A / i;
            }
        }
    
        cout << sum << "\n";
        return 0;
    }
    
    

  • 0
    nb_hn0312  đã bình luận lúc 1, Tháng 6, 2025, 14:14

    cho mình hỏi test 10 là trường hợp nào v??