हमें पूर्णांक प्रकार के तत्वों की एक सरणी के साथ दिया गया है और कार्य दो संख्याओं को गुणा करके बनाए गए अधिकतम कारकों को खोजने के लिए है, यानी सबसे पहले हम एक सरणी में मौजूद संख्याओं को गुणा करेंगे, दूसरे क्रॉस उत्पाद की गणना करेंगे, हम उन संख्याओं के कारकों की गणना करेंगे और जांच करेंगे सभी के बीच अधिकतम कारक।
इनपुट
int arr[] = {3, 2, 10}
आउटपुट
Maximum factors formed by two numbers are: 8
स्पष्टीकरण
-
आंतरिक क्रॉस उत्पाद की गणना करें यानी 3 * 2 =6, 3 * 10 =30, 2 * 10 =20
-
अब 6 -> 1, 2, 3, 6 के गुणनखंडों की गणना करें; 30 -> 1, 2, 3, 5, 6, 10, 15, 30; 20 -> 1, 2, 4,5, 10, 20.
-
उस संख्या की जाँच करें जिसमें अधिकतम गुणनखंड हों अर्थात् 6 में कुल 4 गुणनखंड हों, 20 में कुल 6 गुणनखंड हों और 30 में 8 गुणनखंड हों। अतः दो संख्याओं से बनने वाले अधिकतम गुणनखंड 8 होते हैं।
इनपुट
int arr[] = {1, 4, 6}
आउटपुट
Maximum factors formed by two numbers are: 8
स्पष्टीकरण
-
आंतरिक क्रॉस उत्पाद की गणना करें यानी 1 * 4 =4, 1 * 6 =6, 4 * 6 =24
-
अब 4 -> 1, 2, 4 के गुणनखंडों की गणना करें; 6 -> 1, 2, 3, 6; 24 -> 1, 2, 3, 4, 6, 8, 12, 24.
-
उस संख्या की जाँच करें जिसमें अधिकतम गुणनखंड हों अर्थात 4 में कुल 3 गुणनखंड हों, 6 में कुल 4 गुणनखंड हों और 24 में 8 गुणनखंड हों। अतः दो संख्याओं से बनने वाले अधिकतम गुणनखंड 8 हैं।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
- एक सरणी में पूर्णांक तत्वों को इनपुट करें
- अधिकतम मान स्टोर करने के लिए अस्थायी चर को एकाधिक और बड़ा लें
- लूप i को 0 से सरणी की लंबाई तक प्रारंभ करें
- लूप के अंदर, 0 से एक सरणी की लंबाई तक एक और लूप j शुरू करें
- जांचें कि a[i] a[j] के बराबर नहीं है, यदि हां, तो a[i] * a[j] के साथ वेरिएबल मल्टीपल सेट करें और जांचें कि क्या बड़ा <काउंटफैक्टर (मल्टीपल) फिर फैक्टर (मल्टीपल) को गिनने के लिए बड़ा सेट करें।
- गिनती कारक (एकाधिक) फ़ंक्शन में
- अस्थायी चर को int c =0 के रूप में लें
- जे से 1 के लिए एकाधिक मान तक लूप प्रारंभ करें
- जांचें कि क्या एकाधिक % j =0
- फिर c को 1 से बढ़ाएँ
- जांचें कि क्या एकाधिक % j =0
- वापसी सी
- गिनती कारक (एकाधिक) फ़ंक्शन में
- बड़े का मूल्य प्रिंट करें
उदाहरण
public class BiggestFactor{ public static void main(String[] args){ int a[]={3,2,10}; int multiple=1; int big=1; for(int i=0;i<a.length-1;i++){ for (int j = 0; j < a.length; j++){ if(a[i]!=a[j]){ multiple=a[i]*a[j]; if(big<countFactor(multiple)) big=countFactor(multiple); } } } System.out.println(“Maximum factors formed by two numbers are: ” +big); } private static int countFactor(int i){ int c=0; for (int j = 1; j<=i; j++){ if(i%j==0){ c++; } } return c; } }
आउटपुट
Maximum factors formed by two numbers are: 8