Knödel संख्या - Kn का पता लगाएं


10

नूडल नंबर

नूडेल संख्या क्रम का एक समूह है। विशेष रूप से, एक सकारात्मक पूर्णांक के लिए Knodel संख्या nसंयुक्त संख्या के सेट कर रहे हैं m, इस तरह के हैं कि सभी i < m, coprime के लिए m, संतुष्ट i^(m-n) = 1 (mod m)। विशिष्ट के लिए नॉडेल संख्याओं के सेट nको निरूपित किया जाता है Kn। ( विकिपीडिया )।

उदाहरण के लिए, K1कर रहे हैं कारमाइकल संख्या , और OEIS A002997 । वे की तरह जाना: {561, 1105, 1729, 2465, 2821, 6601, ... }K2है OEIS A050990 , और इस तरह से चला जाता है {4, 6, 8, 10, 12, 14, 22, 24, 26, ... }

आपका कार्य

आपका कार्य प्रोग्राम / फंक्शन / आदि लिखना है। वह दो नंबर लेता है, nऔर p। यह pनॉडेल अनुक्रम की पहली संख्या को वापस करना चाहिए Kn

यह , इसलिए बाइट्स जीत में सबसे छोटा कोड है!

उदाहरण

1, 6   ->   [561, 1105, 1729, 2465, 2821, 6601]
2, 3   ->   [4, 6, 8]
4, 9   ->   [6, 8, 12, 16, 20, 24, 28, 40, 44]
3, 1   ->   [9]
3, 0   ->   []
21, 21 ->   [45, 57, 63, 85, 105, 117, 147, 231, 273, 357, 399, 441, 483, 585, 609, 651, 741, 777, 861, 903, 987]

1
4सीक्वेंस में क्यों नहीं है K_4? i^(4-4) = 1 mod 4हमेशा सच होता है।
ईसैक

1
@isaacg मैथवर्ल्ड अतिरिक्त शर्त यह है कि है m > n
मार्टिन एंडर

जवाबों:


6

पायथ, 29 28 बाइट्स

.f&tPZ!f&q1iTZt%^T-ZQZSZvzhQ

1 बाइट जकूबे और ऑरलपी के लिए धन्यवाद बचा लिया।

प्रदर्शन।

फार्म में इनपुट

p
n

एक बिल्कुल सीधी गणना। पाइथ के एलसीडी फ़ंक्शन के माध्यम से सापेक्ष प्रधानता की जांच की जाती है। यह कोड दिखाता है .f, पायथ का "पहला एन संतोषजनक" फ़ंक्शन।

मैंने अंतर्निहित शर्त को शामिल m > nकिया है जो mमूल्यों के लिए खोज शुरू करके n + 1


4

हास्केल, 89 बाइट्स

बहुत सीधा कार्यान्वयन। एक द्विआधारी ऑपरेटर को परिभाषित करता है n!p

n!p=take p[m|m<-[n+1..],any((<1).mod m)[2..m-1],and[i^(m-n)`mod`m<2|i<-[1..m],gcd i m<2]]

उदाहरण:

Prelude> 4!9
[6,8,12,16,20,24,28,40,44]

2
किस m>nलिए है?
रुबिक जूल

मुझे पता नहीं है। मैं negative exponentत्रुटियों को 21!21हल कर रहा था , और समस्या को हल करने में जोड़ रहा था ।
लिन

1
मैंने कोशिश करने के लिए हास्केल स्थापित किया और यह पता लगाने के लिए कि कैसे काम से लगता है कि m>n&&बिट से छुटकारा पाएं । आपको 91 की बाइट भी मिलती है! m<-[4..]m<-[n+1..]
काडे

1
साफ! धन्यवाद, @Vioz
लिन

@ Vioz- तो आपने हास्केल को पहले से जाने बिना हास्केल के साथ ध्यान किया? तुमने ये कैसे किया?
गर्वित हैकेलर

2

हास्केल, 90

a#b=gcd a b>1
n!p=take p[m|m<-[n+1..],any(m#)[2..m-1],all(\i->m#i||mod(i^(m-n))m<2)[1..m]]

हालांकि @ स्वतंत्र रूप से विकसित @Marius के जवाब के रूप में ही।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.