Số lượng ước số của n

Xem PDF

Điểm: 100 Thời gian: 1.0s Bộ nhớ: 640M Input: bàn phím Output: màn hình

Viết chương trình nhập vào số nguyên \(n\) (\(n\leq 10^9\)). In ra số lượng ước số của \(n\). (Ước số của \(n\) là các số nguyên mà \(n\) chia hết)

Ví dụ: \(n=10\) thì \(4\) ước số: \(1\) \(2\) \(5\) \(10\)

Input

  • Một số nguyên dương \(n\).

Output

  • In ra số lượng ước số của \(n\).

Example

Test 1

Input
10
Output
4

Test 2

Input
36
Output
9

Bình luận


  • -1
    Rinna1206 11:17 a.m. 29 Tháng 2, 2024

    cái nit


    • -1
      caphefacansa 11:03 a.m. 23 Tháng 2, 2024

      include<algorithm>

      include <iostream>

      include <vector>

      include <cmath>

      define ll long long

      using namespace std;

      int main() {
      ll n; cin >> n;
      vector<ll> vt; ll res = 1;
      for(int i = 2;i<=n;i++)
      {
      ll dem=0;
      while(n%i==0)
      {
      n/=i;
      dem++;
      }
      if(dem>0)
      {
      res*=dem+1;
      }
      }
      cout << res;
      }


      • 0
        Mochiracvc1 4:14 p.m. 27 Tháng 1, 2024

        Python
        B1: Nhập biến n=int... như bth
        B2:tạo biến d=0
        B3: for i... (1,n//2+1):
        B4: xét nếu n%i==0 thì d+=1
        B5:Thụt ra đầu dòng và print(d+1)
        =)))


        • 4
          tk22dangminhduc 12:06 p.m. 2 Tháng 8, 2023

          SOLUTION:

          Bài này có 2 phương pháp giải

          Cách 1:
          Duyệt for từ 1 đến sqrt(n) (căn bậc 2), nếu số đó chia hết cho n (hay còn gọi là ước) của n thì +2, nhưng nếu n là một số chính phương thì khi duyệt đến căn bậc 2 của n, chúng ta chỉ +1.

          Cách 2:
          Phuơng pháp này chỉ áp dụng với số > 1
          1: Phân tích n sang thừa số nguyên tố
          2: lấy các số mủ của các thừa số nguyên tố +1
          3: tính tích của dãy số vừa tìm được
          vd : 20 = \(2^2\) * \(5^1\)
          -dãy số mủ số sau khi +1 là (3; 2)
          -tính tích = 3 * 2 = 6
          Vậy kq=6
          hãy kiểm chứng Ư(20) = {1; 2; 4; 5; 10; 20}, kq = 6
          => Dù n là 1 số nguyên tố thì cách này vẫn đúng!

          1 phản hồi

          • 0
            votagiahuy2008 9:55 p.m. 21 Tháng 7, 2023

            include <bits/stdc++.h>

            using namespace std;
            int main()
            {
            long long n;
            cin>>n;
            long long d=0;
            for(int i=1; i<=sqrt(n);i++)
            if (n%i==0)
            {
            d++;
            long long j=n/i;
            if(i!=j) d++;
            }
            cout<<d;
            }


            • 0
              tk21nghialt 6:44 p.m. 15 Tháng 10, 2021

              Ai giúp mình bài này với. Mình làm mà nó bị "Time Limit Exceeded"


              • -6
                kienhc 11:06 a.m. 30 Tháng 7, 2021

                Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.


                • -4
                  tula 10:51 p.m. 27 Tháng 1, 2021

                  n=int(input())
                  d=0
                  for i in range(1,n+1):
                  if n%i==0:
                  d=d+1
                  print(d)

                  3 phản hồi

                  • 1
                    aminh 8:34 p.m. 6 Tháng 11, 2020 đã chỉnh sửa

                    long long n,i,dem=0;
                    cin>>n;
                    for(i=1;i<=sqrt(n);i++)
                    if(n%i==0) dem=dem+2;
                    cout<<dem;

                    2 phản hồi