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

Xem PDF



Thời gian:
Python 3 6.0s
Bộ nhớ:
Python 3 64M

Tác giả:
Dạng bài
Điểm: 100 Thời gian: 10.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 \times 10^7\)). 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


  • 0
    Kuze    5:23 p.m. 31 Tháng 8, 2024
    ai bí thì mở

    from math import *
    n = int(input())
    S = 0
    for i in range(1,int(sqrt(n)) + 1 ):
    if n%i==0:
    j=int(n/i)
    if i == j:
    S += 2
    else:
    S += 2
    print(S)

    2 phản hồi

    • 1
      tk22dangminhduc    1:37 p.m. 1 Tháng 8, 2023 chỉnh sửa 2

      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

      • -2
        namhai2012    9:52 p.m. 17 Tháng 7, 2023

        khó quá


        • 0
          ledung982110    11:24 a.m. 9 Tháng 4, 2023

          bài này t chỉ duyệt for đến căn của n thôi nha nếu chia hết thì +=2 lên là đc.

          2 phản hồi