VL12 - Liệt kê các ướ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, Python, Ruby, Rust, Scratch, Swift

Viết chương trình liệt kê các ước nguyên dương của số nguyên ~n~ nhập từ bàn phím theo thứ tự giảm dần.

Input

Số nguyên ~n, |n| \le 10^4~

Output

Danh sách các ước số nguyên dương của số ~n~ theo thứ tự giảm dần, các số cách nhau bởi 1 dấu cách.

Nếu số ~n~ có vô số ước nguyên dương, in ra INF

Sample

Input #1
8
Output #1
8 4 2 1

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    ngodochanh  đã bình luận lúc 16, Tháng 4, 2024, 14:23

    import java.util.Scanner; import java.util.Arrays;

    public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = Math.abs(scanner.nextInt());

        if (n == 0) {
            System.out.println("INF");
        } else if (n == 1) {
            System.out.println("1");
        } else {
            int[] divisorsArray = divisors(n);
            Arrays.sort(divisorsArray);
            for (int i = 0; i < divisorsArray.length / 2; i++) {
                int temp = divisorsArray[i];
                divisorsArray[i] = divisorsArray[divisorsArray.length - i - 1];
                divisorsArray[divisorsArray.length - i - 1] = temp;
            }
    
            for (int divisor : divisorsArray) {
                System.out.print(divisor + " ");
            }
        }
    }
    
    public static int[] divisors(int n) {
        int[] divisorsArray = new int[2 * (int) Math.sqrt(n) + 2];
        int index = 0;
    
        for (int i = 1; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                divisorsArray[index++] = i;
                if (i != n / i) {
                    divisorsArray[index++] = n / i;
                }
            }
        }
    
        return Arrays.copyOf(divisorsArray, index);
    }
    

    }


  • -1
    lienhuetien01  đã bình luận lúc 29, Tháng 2, 2024, 9:44

    code python mn xem giup voi mik sai test 4: n= int(input()) a=n n = abs(n) if n==0: print("INF") else: if (a<0): for i in range(1,n+1): if n%i == 0: print("-{}".format(i), end=" ") else: for i in range(n+1,0,-1): if n%i == 0: print(i,end=" ")


  • 0
    hohoanghai5042011  đã bình luận lúc 15, Tháng 2, 2024, 7:31

    #include <bits/stdc++.h>

    using namespace std; int n,k,a[100001],t=0,e=0,i,j; int main() { cin>>n; if (n==0) cout<<"INF"; else for(i=abs(n);i>=1;i--) if(n%i==0) cout<<i<<" "; }


  • -1
    hailuacx  đã bình luận lúc 12, Tháng 1, 2024, 16:17

    AC đủ 5 test

    include <bits/stdc++.h>

    using namespace std;

    int main() { int n; cin >> n; n = abs(n); if (n==0) { cout << "INF"; } else { for (int i = n; i >= 1; i--){ if(n % i == 0){ cout << i << " "; } } } return 0; }


  • 0
    thao_oiiiiii3  đã bình luận lúc 1, Tháng 1, 2024, 14:47

    chào các vị đạo hữu ạ

    include <iostream>

    include <cmath>

    using namespace std; void U(int n){ for(int i = n ; i >= 1; i--){ if(n % i == 0){ cout << i << " "; } } } int main(){ int n; cin >> n; n = abs(n); if(n > 0){ U(n); }else{ cout << "INF"; } return 0; }


  • -2
    Kha_ga_k29  đã bình luận lúc 31, Tháng 12, 2023, 16:08

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    namespace VL12LietKeCacUocSo {

    internal class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            if (n == 0)
                Console.Write("INF");
            else
            {
    
                if(n > 0)
                {
                    for (int i = n; i > 0; i--)
                    {
                        if (n % i == 0)
                            Console.Write(i + " ");
                    }
                }
                else 
                {
                    n = -n;
                    for (int i = n; i > 0 ; i--)
                    {
                        if (n % i == 0)
                            Console.Write(i + " ");
                    }
                }
    
            }
            Console.ReadKey();
        }
    }
    

    } k dùng Abs nên tui hơi vòng vo chút ^^, C#


  • 0
    VoPhatDat  đã bình luận lúc 20, Tháng 12, 2023, 12:50

    Chú ý input là số nguyên n nha nên nó có thể là số âm

    n = int(input()) i = abs(n) if (n == 0): print("INF") else: while (i != 1): if (abs(n) % i == 0): print(i, " ") i-=1; print(1)


    • 0
      Bangg  đã bình luận lúc 23, Tháng 12, 2023, 17:14

      int n;cin>>n; if(n==0) cout<<"INF"; for(int i=n;i>0;i--) if(n%i==0) cout<<i<<"\t";

      sao sai case 4 vậy ae


  • -1
    Kphong  đã bình luận lúc 12, Tháng 12, 2023, 10:56

    sos


  • -4
    quang16  đã bình luận lúc 9, Tháng 12, 2023, 3:41

    case 4 là gì vậy mn test toàn sai


  • -1
    loc  đã bình luận lúc 25, Tháng 11, 2023, 8:08

    include <bits/stdc++.h>

    using namespace std; int sx(int a, int b) { return a>b; } int main(){ int n; cin>>n; n=abs(n); if (n>0) { vector<int> v; for (int i=1; i<=sqrt(n); i++) if (n%i==0) { v.pushback(i); if(i!=n/i) v.pushback(n/i); } sort(v.begin(), v.end(),sx); for (auto x:v) cout<<x<<" "; } else cout<<"INF";

    return 0;
    

    }


  • -7
    user  đã bình luận lúc 16, Tháng 11, 2023, 12:41

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 1
    dihntri  đã bình luận lúc 25, Tháng 10, 2023, 6:59

    sao để sắp xếp theo thứ tự giảm dần vậy


    • 1
      tmphuongct  đã bình luận lúc 4, Tháng 2, 2024, 16:33

      a.sort(reverse=-1)


    • 2
      ananan2q  đã bình luận lúc 28, Tháng 11, 2023, 13:18

      dùng for đếm ngược từ n về 1 bạn ạ


  • 1
    quangminh1007  đã bình luận lúc 5, Tháng 9, 2023, 14:56

    Ae để ý chỉ in ra ước số nguyên dương thôi nha, đừng in ra cả ước nguyên âm giống t sẽ sai case 4


  • -1
    HuyTagama  đã bình luận lúc 1, Tháng 9, 2023, 13:49

    Các bạn nhập số n và cho n = abs(n) nhé, check n = 0 thì vô số ước, còn lại thì đếm như bình thường


  • -1
    Dau_tay_2019  đã bình luận lúc 4, Tháng 8, 2023, 9:46

    cho hỏi mình ko hiểu số n có vô số ước nguyên dương. A/c bạn nào biết chỉ với ạ. Cám ơi


    • -1
      namchamhoccode  đã bình luận lúc 4, Tháng 8, 2023, 16:31

      Mình nghĩ là n=0 thì có vô số ước á.


      • -1
        Dau_tay_2019  đã bình luận lúc 5, Tháng 8, 2023, 10:20

        nhưng mình đã làm vẫn sai ở test case 4. hic


        • -1
          namvu2211  đã bình luận lúc 14, Tháng 10, 2023, 6:21

          case 4 hinh nhu la test so am y ban


  • -1
    Nguyenhuy0903  đã bình luận lúc 31, Tháng 7, 2023, 8:53

    ai có code mẫu bài này k mn


    • 0
      namchamhoccode  đã bình luận lúc 4, Tháng 8, 2023, 16:32

      Mình bị kẹt ở test case 4 mà k biết sai chỗ nào, mặc dù chạy đúng và k quá thời gian.


      • 0
        kimquyhuynh2005  đã bình luận lúc 5, Tháng 8, 2023, 2:56

        t cũng v, không biết xử như nào :)


        • 0
          Lam_2108  đã bình luận lúc 5, Tháng 8, 2023, 3:53

          sai ở case 4 là sai về gì á bạn


          • 0
            tranhoangviet2000553  đã bình luận lúc 5, Tháng 8, 2023, 9:09

            à mình biết sai đâu code của mình sau đâu r nếu x âm của mình sai không biết code bạn ntn


          • 1
            tranhoangviet2000553  đã bình luận lúc 5, Tháng 8, 2023, 9:01

            ban giai duoc chua minh cung dang ket


            • 1
              quyen1910  đã bình luận lúc 7, Tháng 8, 2023, 5:54

              case 4 là số âm á,còn case 5 là số 0