VL17 - Đếm số lượng ước số

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

Số 0 thì mình đã biết nó có mấy ước rồi, nên mình nhờ bạn giúp mình viết chương trình tìm số lượng ước số dương của 1 số nguyên ~a~ khác 0 thôi.

Input

  • Số nguyên ~a~

Giới hạn:

  • ~a \ne 0~
  • ~|a| \le 1000~

Output

Số lượng ước dương của số nguyên ~a~

Sample

Input #1
4
Output #1
3
Input #2
-4
Output #2
3

Bình luận

Please read the guidelines before commenting.



  • 0
    thanhvinh21052015  đã bình luận lúc 22, Tháng 3, 2026, 8:26 chỉnh sửa

    Full AC nha anh em thử cách này, cái này là mã python 3 cho ai học python 3 : a = int(input())

    a = abs(a) count = 0

    for i in range(1, a + 1): if a % i == 0: count += 1

    print(count)


  • -1
    kietjumper  đã bình luận lúc 7, Tháng 1, 2026, 15:57
    #include<bits/stdc++.h>
    using namespace std;
    
    int cnt_div(int n)
    {
        int cnt = 1;
        for (int i = 2; i * i <= n; i++)
        {
            int tmp = 0;
            while (n % i == 0)
            {
                n /= i;
                ++tmp;
            }
            cnt *= (tmp + 1);
        }
        if (n > 1) cnt *= 2;
        return cnt;
    }
    
    int main()
    {
        int n;
        cin >> n;
        cout << cnt_div(abs(n));
    }
    
    

    Code sử tham khảo sử dụng thuật toán đếm ước dựa trên thuật toán phân tích thừa số nguyên tố. Các bạn tham khảo thêm nhé.


  • 1
    Duong_Thanh_Khiem_L8  đã bình luận lúc 24, Tháng 11, 2025, 16:07

    FULL AC:

    #include <bits/stdc++.h>
    using namespace std;
    short a, dem = 0;
    int main(){
        cin >> a;
        if (a < 0){
            for (int i = 1;i <= abs(a);i++){
                if (abs(a) % i == 0)dem++;
            }
        }
        else {
            for (int i = 1;i <= a;i++){
                if (a % i == 0)dem++;
            }
        }
        cout << dem;
        return 0;
    }
    

  • -2
    frekraiko23  đã bình luận lúc 29, Tháng 10, 2024, 12:49 chỉnh sửa

    uses crt;

    var a,i,t:longint;

    begin

    readln(a,b);

    for i:=1 to abs(a) do if a mod i=0 then t:=t+1;

    write(t);

    end.

    code pascal đã AC


  • -4
    vuquochiep  đã bình luận lúc 23, Tháng 7, 2024, 9:52

    Trường hợp a=-1 đấy b