Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# hiển thị ước số của số nhập vào

Ước số (factor) của n là các số nguyên dương chia hết cho n. Duyệt từ 1 đến n, kiểm tra n % i == 0.

Mã nguồn

using System;

namespace Demo {
    class ApplicationOne {
        static void Main(string[] args) {
            Console.Write("Nhập số: ");
            int n = int.Parse(Console.ReadLine());
            
            Console.WriteLine("Các ước số:");
            for (int i = 1; i <= n; i++) {
                if (n % i == 0) {
                    Console.WriteLine(i);
                }
            }
            Console.ReadLine();
        }
    }
}

Kết quả (n = 12)

Nhập số: 12
Các ước số:
1
2
3
4
6
12

Tối ưu: Chỉ duyệt đến √n

Nếu i là ước thì n/i cũng là ước. Chỉ cần duyệt đến sqrt(n):

static void PrintFactorsOptimized(int n) {
    var factors = new List();
    for (int i = 1; i * i <= n; i++) {
        if (n % i == 0) {
            factors.Add(i);
            if (i != n / i) factors.Add(n / i); // Tránh trùng khi i = sqrt(n)
        }
    }
    factors.Sort();
    foreach (int f in factors) Console.WriteLine(f);
}

So sánh độ phức tạp

Phương phápĐộ phức tạpLưu ý
Duyệt 1..nO(n)Đơn giản, chậm với n lớn
Duyệt 1..√nO(√n)Nhanh hơn nhiều, cần sort kết quả

Lưu ý

  • Xử lý input không hợp lệ (âm, 0, không phải số) bằng int.TryParse.
  • Số 0 có vô hạn ước số — cần kiểm tra riêng.
  • Số âm: ước số thường xét giá trị tuyệt đối.