उदाहरण
import java.io.*;
import java.math.*;
public class Demo {
static void divisorCount(int nVal) {
int rootVal = (int)(Math.sqrt(nVal));
if (rootVal * rootVal == nVal) {
System.out.println("विभाजकों की संख्या एक विषम संख्या है");
} else {
System.out.println("विभाजकों की संख्या एक सम संख्या है");
}
}
public static void main(String args[]) throws IOException {
divisorCount(25);
}
}
आउटपुट
विभाजकों की संख्या एक विषम संख्या है
व्याख्या: Demo क्लास में 'divisorCount' नामक एक फंक्शन होता है, जो जांचता है कि विशिष्ट संख्या के विभाजकों की संख्या एक सम मान है या विषम संख्या। मुख्य फंक्शन में, 'divisorCount' को एक परिभाषित मान के साथ कॉल किया जाता है। प्रासंगिक संदेश कंसोल पर प्रदर्शित होता है।
गणितीय सिद्धांत:
विभाजक जोड़े में आते हैं: (d, n/d)
- यदि n पूर्ण वर्ग नहीं है: सभी जोड़े विशिष्ट → सम संख्या में विभाजक
- यदि n पूर्ण वर्ग है: एक जोड़ा समान है (√n, √n) → विषम संख्या में विभाजक
उदाहरण:
n = 25 (5²): विभाजक = 1, 5, 25 → 3 (विषम) ✓
n = 36 (6²): विभाजक = 1,2,3,4,6,9,12,18,36 → 9 (विषम) ✓
n = 24: विभाजक = 1,2,3,4,6,8,12,24 → 8 (सम) ✓
n = 12: विभाजक = 1,2,3,4,6,12 → 6 (सम) ✓
विभाजकों की सटीक संख्या:
यदि n = p₁ᵃ¹ × p₂ᵃ² × ... × pₖᵃᵏ (अभाज्य गुणनखंडन)
विभाजकों की संख्या = (a₁+1)(a₂+1)...(aₖ+1)
पूर्ण समाधान (संख्या + सम/विषम):
public static int countDivisors(int n) {
int count = 0;
for (int i = 1; i * i <= n; i++) {
if (n % i == 0) {
if (i * i == n) count++; // पूर्ण वर्ग
else count += 2; // जोड़ा
}
}
return count;
}
public static void divisorInfo(int n) {
int count = countDivisors(n);
System.out.println(n + " के " + count + " विभाजक हैं (" + (count % 2 == 0 ? "सम" : "विषम") + ")");
}
अनुप्रयोग:
- संख्या सिद्धांत समस्याएं
- पूर्ण वर्ग पहचान
- प्रतिस्पर्धात्मक प्रोग्रामिंग अनुकूलन