김현이

[जावा] स्ट्रीम का उपयोग करके सुस्त ढंग से अभाज्य संख्याएँ ज्ञात करना

  • लेखन भाषा: कोरियाई
  • आधार देश: सभी देशcountry-flag
  • आईटी

रचना: 2024-07-23

रचना: 2024-07-23 19:39

आमतौर पर यह जांचने के लिए कि क्या n एक अभाज्य संख्या है, हम 2 से n - 1 तक n को विभाजित करते हैं और देखते हैं कि क्या यह किसी से विभाज्य है।

इस विधि में कुछ अनुकूलन लागू करके इसे और अधिक कुशल बनाया जा सकता है, और स्ट्रीम का उपयोग करके सुस्त मूल्यांकन को लागू किया जा सकता है।


भोली विधि

निम्नलिखित n के लिए एक भोली जाँच है कि क्या यह अभाज्य है।

सुधार

  • जब n = a x b होता है, तो हम यह मान सकते हैं कि a > b बिना किसी सामान्यता को खोए।
    अर्थात, हमें केवल i को sqrt(n) तक जांचने की आवश्यकता है। चूँकि sqrt() ऑपरेशन महंगा है, इसलिए हम इसे i * i <= n शर्त से बदल सकते हैं।
  • 5 से अधिक अभाज्य संख्याएँ 6k ± 1 के रूप में लिखी जा सकती हैं। इसलिए, हम i को 6 से बढ़ाकर जांच कर सकते हैं, जिससे जांच की संख्या कम हो जाती है।

सुधारी हुई विधि


सुस्त मूल्यांकन को लागू करने के लिए स्ट्रीम का उपयोग करना

जावा में स्ट्रीम, सूची के विपरीत, परिभाषित होने पर तुरंत गणना नहीं करते हैं।

वे प्रत्येक तत्व की गणना कैसे करें, यह परिभाषित करते हुए प्रतीक्षा करते हैं, और जब तक किसी विशेष तत्व की आवश्यकता नहीं होती, तब तक केवल उस तत्व की गणना के लिए आवश्यक गणना करते हैं।

इसका उपयोग करके, हम अभाज्य संख्याओं को खोजने के लिए एक स्ट्रीम बना सकते हैं, जैसा कि नीचे दिखाया गया है।

निष्पादन परिणाम

संपूर्ण कोड

निष्पादन परिणाम

[जावा] स्ट्रीम का उपयोग करके सुस्त ढंग से अभाज्य संख्याएँ ज्ञात करना




टिप्पणियाँ0

[इफेक्टिव जावा] आइटम 6. अनावश्यक ऑब्जेक्ट निर्माण से बचेंअनावश्यक ऑब्जेक्ट निर्माण मेमोरी की बर्बादी का कारण बनता है, इसलिए स्ट्रिंग या बूलियन जैसे ऑब्जेक्ट के लिए लिटरल या स्टेटिक फैक्ट्री मेथड का उपयोग करना बेहतर होता है।
제이온
제이온
제이온
제이온

April 28, 2024

2024-11-16 विभिन्न विषयों में रुचि: ब्लॉग की शुरुआत2024 के नवंबर 16 को लिखे गए इस ब्लॉग पोस्ट में LeetCode (लीटकोड) समस्याओं के समाधान, वीडियो निर्माण प्रक्रिया और भविष्य की योजनाओं (जैसे, elice.io पर अध्ययन) का विवरण दिया गया है।
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 16, 2024

निवेश पद्धति (स्टॉक)यह अमेरिकी स्टॉक ETF पर अनंत खरीद विधि और सेवन स्प्लिट को लागू करने वाली निवेश पद्धति का परिचय देता है। RPA का उपयोग करके स्टॉक चयन, आंशिक खरीद/बिक्री समय निर्धारण आदि को स्वचालित किया जाता है।
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

April 20, 2024

वेक्टर सर्च.. निश्चित रूप से निकटतम सही है, लेकिन..768 आयामी वेक्टर खोज में निकटतम लेख वास्तव में समान लेख है या नहीं, इस पर सवाल उठाने वाला लेख है। चरम उदाहरणों के माध्यम से यह दिखाया गया है कि निकटतम वेक्टर हमेशा समान सामग्री का मतलब नहीं हो सकता है। हमें उम्मीद है कि अधिक डेटा उपलब्ध होने पर समस्या हल
해리슨 블로그
해리슨 블로그
해리슨 블로그
해리슨 블로그

November 23, 2024

शोर एल्गोरिथम: क्वांटम कंप्यूटर की आश्चर्यजनक अभाज्य गुणनखंडन तकनीकशोर एल्गोरिथम एक ऐसा एल्गोरिथम है जो बड़ी संख्याओं का तेज़ी से अभाज्य गुणनखंडन करने के लिए क्वांटम कंप्यूटर का उपयोग करता है, और यह RSA एन्क्रिप्शन सिस्टम की सुरक्षा को प्रभावित कर सकता है। 4 जनवरी, 2025 को लिखा गया।
Cherry Bee
Cherry Bee
Cherry Bee
Cherry Bee

January 4, 2025

29 नवंबर 2024 की लेट ब्रेकिंग न्यूज़: Replit का पेड सब्सक्रिप्शन / अच्छी सॉफ्टवेयर डेवलपमेंट आदतें29 नवंबर 2024 को लिखे गए इस ब्लॉग पोस्ट में Replit के पेड सब्सक्रिप्शन के अनुभव को साझा किया गया है और अच्छी सॉफ्टवेयर डेवलपमेंट आदतों के 10 सुझाव दिए गए हैं। इसमें कुशल कोडिंग और रिफैक्टरिंग रणनीतियाँ, टेस्टिंग के महत्व आदि पर चर्चा की गई है।
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 29, 2024