ตัวประกอบ (Factor) ของจำนวนเต็ม n คือ จำนวนที่หาร n ลงตัว (เศษ = 0) โปรแกรมนี้รับค่าจากผู้ใช้ แล้วหาตัวประกอบทั้งหมด
อัลกอริทึม
- รับค่า n จากผู้ใช้
- วนลูป i = 1 ถึง n
- ถ้า n % i == 0 แสดงว่า i เป็นตัวประกอบ
ตัวอย่างโค้ด
using System;
namespace Demo
{
class MyApplication
{
static void Main(string[] args)
{
Console.Write("ป้อนจำนวนเต็ม: ");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("ตัวประกอบของ " + n + ":");
for (int i = 1; i <= n; i++)
{
if (n % i == 0)
{
Console.WriteLine(i);
}
}
Console.ReadLine();
}
}
}
ผลลัพธ์ตัวอย่าง (n = 12)
ป้อนจำนวนเต็ม: 12 ตัวประกอบของ 12: 1 2 3 4 6 12
การเพิ่มประสิทธิภาพ (Optimization)
แทนที่จะลูป 1 ถึง n สามารถลูปแค่ 1 ถึง √n ได้:
for (int i = 1; i * i <= n; i++)
{
if (n % i == 0)
{
Console.WriteLine(i);
if (i != n / i) // หลีกเลี่ยงซ้ำเมื่อ i = √n
Console.WriteLine(n / i);
}
}
ซับซ้อนกว่าเล็กน้อย แต่เร็วขึ้นมากสำหรับตัวเลขใหญ่ (O(√n) แทน O(n))