Generating prime numbers in Go -


संपादित करें : सवाल अनिवार्य रूप से एक निश्चित सीमा तक प्रमुख संख्या उत्पन्न करने के लिए कहता है। मूल प्रश्न इस प्रकार है।

मैं चाहता हूं कि मेरा अगर स्टेटमेंट सही हो जाए, तो केवल ये दो शर्तें पूरी होती हैं:

  i: = 2 के लिए ; मैं & lt; = 10; आई ++ {अगर मैं% i == 0 & amp; amp; मैं% 1 == 0 {} else {}}  

इस मामले में हर संभव संख्या में इन स्थितियों से गुजरना पड़ता है, हालांकि मुझे केवल 2, 3, 5, 7, 11 की संख्या चाहिए। .. मूल रूप से संख्याएं जो केवल खुद के साथ विभाजित होती हैं और 1 के द्वारा पिछले प्राप्त करने के लिए, अपवाद के साथ बहुत पहले '2' मैं ऐसा कैसे कर सकता हूं?

धन्यवाद

ऐसा लगता है कि आप की तलाश में हैं हालांकि आपके द्वारा वर्णित शर्तों पर्याप्त नहीं हैं वास्तव में आपको उनको उत्पन्न करने के लिए एल्गोरिथ्म का उपयोग करना होगा (सबसे निश्चित रूप से एक निश्चित सीमा तक)।

जो प्राचीन छलनी की इरोटोस्टिनेस का एक अनुकूलित भिन्नता है। < / P>

डेमो:

पूर्णता के लिए:

  पैकेज मुख्य आयात ("fmt" "गणित") // केवल primes कम या उससे कम को एन const n = 100 func मुख्य () {var x, y, n int nsqrt: = math.Sqrt (एन) is_prime: = [N] bool {} एक्स = 1 के लिए उत्पन्न हो जाएगा; Float64 (x) & lt; = nsqrt; X ++ {for y = 1; Float64 (y) & lt; = nsqrt; Y ++ {n = 4 * (x * x) + y * y अगर n & lt; = N & amp; amp; (एन% 12 == 1 || एन% 12 == 5) {is_prime [n] =! Is_prime [n]} n = 3 * (x * x) + y * y अगर n & lt; = N & amp; ; N% 12 == 7 {is_prime [n] =! Is_prime [n]} n = 3 * (x * x) - y * y अगर x & gt; वाई एंड amp; N & lt; = N & amp; amp; N% 12 == 11 {is_prime [n] =! Is_prime [n]}}} n = 5 के लिए; Float64 (n) & lt; = nsqrt; N ++ {if_prime [n] {for y = n * n; वाई एंड एलटी; एन; Y = = n * n {is_prime [y] = false}}} is_prime [2] = सच is_prime [3] = सच primes: = बनाने ([] int, 0, 1270606) x = 0 के लिए; X & lt; लेन (is_prime) -1; X ++ {if_prime [x] {primes = append (primes, x)}} // primes अब एक टुकड़ा है जिसमें सभी primes संख्याएं एन / तक होती हैं तो चलिए उन्हें _, x: = range primes {fmt} के लिए प्रिंट करें। Println (x)}}  

Comments