किसी संख्या n के गुणनखंड (फैक्टर्स) वे संख्याएं हैं जो n को पूरी तरह विभाजित करती हैं (शेषफल 0)।
एल्गोरिदम
- उपयोगकर्ता से संख्या
nलें। - 1 से
nतक लूप चलाएं। - यदि
n % i == 0, तोiएक गुणनखंड है।
उदाहरण
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class ApplicationOne {
static void Main(string[] args) {
int n, i;
Console.WriteLine("Enter the Number:");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Factors:");
for (i = 1; i <= n; i++) {
if (n % i == 0) {
Console.WriteLine(i);
}
}
Console.ReadLine();
}
}
}
नमूना आउटपुट (n=12 के लिए)
Enter the Number: 12 Factors: 1 2 3 4 6 12
अनुकूलित दृष्टिकोण: O(√n)
गुणनखंड जोड़ों में आते हैं: यदि i गुणनखंड है, तो n/i भी गुणनखंड है। हम केवल √n तक लूप चला सकते हैं।
using System;
using System.Collections.Generic;
class Program {
static void Main() {
Console.Write("Enter number: ");
int n = int.Parse(Console.ReadLine());
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);
}
}
factors.Sort();
Console.WriteLine("Factors: " + string.Join(", ", factors));
}
}
आउटपुट (n=36 के लिए)
Factors: 1, 2, 3, 4, 6, 9, 12, 18, 36
मुख्य बिंदु
- 1 और संख्या स्वयं हमेशा गुणनखंड होते हैं।
- अभाज्य संख्याओं के ठीक 2 गुणनखंड होते हैं: 1 और स्वयं।
- पूर्ण वर्ग संख्याओं के विषम संख्या में गुणनखंड होते हैं।
- बड़ी संख्याओं के लिए O(√n) एल्गोरिदम बहुत तेज है।