Ước số của n

Xem PDF



Tác giả:
Dạng bài
Đ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^7\)). In ra tất cả các ướ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ì in ra các số: \(1\) \(2\) \(5\) \(10\)

Input

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

Output

  • In ra các ước số của \(n\).

Example

Test 2

Input
10
Output
1 2 5 10

Test 2

Input
36
Output
1 2 3 4 6 9 12 18 36

Bình luận


  • 0
    vietnammuonnam_mvn    6:40 p.m. 12 Tháng 10, 2024

    import math
    n=int(input())
    a=[]
    for i in range(1,int(math.sqrt(n))+1):
    if n%i==0:
    if(ii==n):
    a.append(i)
    else:
    a.append(i)
    a.append(n//i)
    a=sorted(a)
    print(
    a)


    • 0
      Khanh_2004    11:03 p.m. 30 Tháng 9, 2024 chỉnh sửa 5
      #include <bits/stdc++.h>
      using namespace std;
      #define ll long long
      
      int main() {
          ios_base::sync_with_stdio(0);
          cin.tie(0);cout.tie(0);
          int n; cin >> n;
          for (int i = 1; i <= n; ++i) {
              if (n % i == 0) {
                  cout << i << ' ';
              }
          }
          return 0;
      }
      
      1 phản hồi

      • 1
        Nguyen_Anh_Minh1    9:36 a.m. 18 Tháng 7, 2024

        n=int(input())
        for i in range(1,n//2+1):
        if n%i==0:
        print(i,end=' ')
        print(n)


        • 0
          giathinhd061    8:11 a.m. 17 Tháng 7, 2024

          import math
          n=int(input())
          dem=0
          for i in range (1,int(sqrt(n))+1):
          if (n%i==0):
          dem+=1
          if (i!=n/i):
          dem+=1
          print(dem)


          • 0
            haitrannguyenphong    9:46 a.m. 29 Tháng 6, 2024

            n=int(input())
            for i in range(1,n//2+1):
            if n%1==0:
            print(i,end=' ')
            print(n)
            code python 3 này sai ở chỗ đâu vậy mọi người?

            1 phản hồi

            • 2
              kay    9:16 p.m. 25 Tháng 3, 2024

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

              1 phản hồi

              • 3
                dxuloc    11:15 a.m. 6 Tháng 2, 2024

                test cuối lỗi à

                1 phản hồi

                • 1
                  khoinguyentl2023    9:50 a.m. 11 Tháng 4, 2023

                  tang thoi gian cho python di a


                  • 0
                    tranminhkhoi    6:22 p.m. 29 Tháng 10, 2020

                    help mình với

                    4 phản hồi

                    • 4
                      SPyofgame    9:18 p.m. 7 Tháng 6, 2020

                      Spoiler Alert

                      Hint 1

                      Gọi D(x) là tập hợp các ước của x

                      **D(x) = {y ∈ D(x) | y ≤ k} Λ {z ∈ D(x) | z > k} **

                      Hint 2

                      Đặt k tới đâu, mình chỉ cần duyệt trong O(k) là xong

                      Hint 3

                      n = a * b và (a < b), theo bđt Cauchy thì a ≤ √nb > √n

                      Duyệt tới k = √n là tối ưu nhất

                      Reference

                      C++
                      int main()
                      {
                          /// Nhan gia tri
                          int n = readInt();
                      
                          vi lower; /// {y ∈ D(x) | y ≤ k}
                          vi upper; /// {z ∈ D(x) | z > k}
                      
                          /// Tim cac uoc
                          int sqrtn = sqrt(n);
                          for (int i = 1; i <= sqrtn; ++i)
                              if (n % i == 0)
                                  lower.push_back(i),
                                  upper.push_back(n / i);
                      
                          /// Tach phan chung khi (n) la so chinh phuong
                          if (lower.back() == upper.back()) upper.pop_back();
                          reverse(all(upper));
                      
                          /// In ket qua
                          for (int x : lower) cout << x << ' ';
                          for (int x : upper) cout << x << ' ';
                          return 0;
                      }