Lập trình C# - Tìm số hoàn hảo trong một dãy cho trước

 Tìm số hoàn hảo

Viết chương trình C# để tìm số hoàn hảo trong một dãy cho trước. Số hoàn hảo là số có tổng các ước số dương (ngoại trừ chính số đó) bằng chính số đó.

Ví dụ:
6 có các ước số ngoại trừ chính nó là 1, 2, 3 và có tổng các ước là 1 + 2 + 3 = 6
--> 6 là số hoàn hảo

Đây là bài tập C# cơ bản minh họa giúp bạn cách sử dụng kết hợp vòng lặp FOR, vòng lặp WHILE và lệnh IF trong C#.

Chương trình C#

Dưới đây là chương trình C# để giải bài tập tìm số hoàn hảo trong C#:

using System;

namespace Csharp
{
    class TestCsharp
    {
        public static void Main()
        {

            int n, i, sum;
            int mn, mx;

            Console.Write("\n");
            Console.Write("Tim so hoan hao trong C#:\n");
            Console.Write("--------------------------");
            Console.Write("\n\n");

            Console.Write("Nhap so bat dau cua day so: ");
            mn = Convert.ToInt32(Console.ReadLine());
            Console.Write("Nhap so ket thuc cua day so: ");
            mx = Convert.ToInt32(Console.ReadLine());
            Console.Write("Cac so hoan hao trong day da cho la: ");
            for (n = mn; n <= mx; n++)
            {
                i = 1;
                sum = 0;
                while (i < n)
                {
                    if (n % i == 0)
                        sum = sum + i;
                    i++;
                }
                if (sum == n)
                    Console.Write("{0} ", n);
            }
            Console.Write("\n");             

            Console.ReadKey();
        } 
    }
}

Xem ví dụ

Biên dịch và chạy chương trình C# trên sẽ cho kết quả:

Tìm số hoàn hảo trong C#