CSES - Counting Divisor | Đếm ước

Xem PDF



Thời gian:
Pypy 3 1.5s
Python 3 3.5s

Tác giả:
Dạng bài
Điểm: 1500 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho \(n\) số nguyên. Với mỗi số, hãy cho biết số lượng ước của nó.

Ví dụ, nếu \(x = 18\), câu trả lời đúng là \(6\) vì các ước của nó là \(1,2,3,6,9,18.\)

Input

  • Dòng đầu tiên chứa một số nguyên \(n\)
  • Sau đó là \(n\) dòng, mỗi dòng chứa một số nguyên \(x\)

Output

  • Đối với mỗi số nguyên, in ra số lượng ước của nó.

Constraints

  • \(1 \leq n \leq 10^5\)
  • \(1 \leq x \leq 10^6\)

Example

Sample input

3
16
17
18

Sample output

5
2
6


Bình luận


  • -1
    danghoang    12:19 a.m. 9 Tháng 2, 2024

    Đếm ước như bt duyệt từ 1-> sqrt(n) cs AC:))

    #include <bits/stdc++.h>
    using namespace std;
    const int N = 1e5+5;
    int n, i, x, d, q;
    
    int main()
    {
        ios_base::sync_with_stdio(0);
        cin.tie(0);cout.tie(0);
        cin >> q;
        while(q--)
        {
            cin >> n;
            d = 0;
            for(int i = 1; i*i <= n; i++)
            {
                if(n % i == 0)
                {
                    if(n/i == i) d++;
                    else d += 2;
                }
            }
            cout << d << '\n';
        }
    }
    

    • 6 bình luận nữa