क्या यह एक चक्रीय संख्या है?


20

एक चक्रीय संख्या "n" अंक की एक संख्या है जिसे 1, 2, 3, ... n से गुणा करने पर समान अंक मिलते हैं लेकिन एक अलग क्रम में।

उदाहरण के लिए, 142,857 संख्या एक चक्रीय संख्या है क्योंकि 142,857 x 2 = 285,714, 142,857 x 3 = 428,571, 142,857 x 4 = 571,428, और इसी तरह। पूर्णांक इनपुट को देखते हुए, यह निर्धारित करें कि क्या यह एक सत्य मान का उत्पादन करके एक चक्रीय संख्या है यदि यह है, और नहीं तो एक मिथ्या मूल्य।

इसके अलावा, स्पष्ट होने के लिए, इनपुट में 0 शामिल हो सकते हैं: जैसे 0344827586206896551724137931

ऐसा इसलिए है, क्योंकि यदि अंकों पर अग्रणी शून्य की अनुमति नहीं है, तो 142857 दशमलव में एकमात्र चक्रीय संख्या है।

चूंकि यह कोड-गोल्फ है, बाइट्स जीत में सबसे छोटा जवाब!


1
नमस्ते और पीपीसीजी में आपका स्वागत है। यह एक बुरा सवाल नहीं है, लेकिन अगर आप हाल ही में पोस्ट किए गए कुछ सवालों पर एक नज़र डालें, तो मुझे लगता है कि आप देखेंगे कि यह बेहतर हो सकता है। विशेष रूप से, यह समुदाय के लिए बहुत फायदेमंद होगा यदि आप काम करने के लिए अधिक परीक्षण मामले प्रदान करते हैं। भविष्य की चुनौतियों को पोस्ट करते समय, कृपया सैंडबॉक्स का उपयोग करने पर विचार करें ।
FryAmTheEggman

जवाबों:


3

05AB1E , 9 6 बाइट्स

3 बाइट्स बचाने के लिए Emigna को धन्यवाद !

ā*€{ïË

स्पष्टीकरण:

ā        # Push range(1, len(input) + 1)
 *       # Multiply by the input
  €{     # Sort each element
    ï    # Convert to int to remove leading zeros
     Ë   # Check if all elements are equal

05AB1E एन्कोडिंग का उपयोग करता है । इसे ऑनलाइन आज़माएं!


1
इसका कारण क्या है ¦‚˜?
कलसवरस

1
@kalsowerus यदि इनपुट में एक प्रमुख शून्य है, तो 1 से गुणा करने से यह गायब हो जाएगा, जो इसके लिए काम नहीं करता है 0588235294117647
अदनान

2
@tfbninja ओह ठीक है, गुणा करने के बाद अग्रणी जीरो जोड़ रहा है क्या कुछ भी ध्यान में रखना है? ये कुछ अलग-अलग अग्रणी ज़ीरो के साथ गुणा करने के बाद मुझे मिलने वाले व्यक्तिगत सॉर्ट किए गए परिणाम हैं , जो शायद यहाँ समस्या का संकेत देंगे।
अदनान

1
0212765957446808510638297872340425531914893617किसी अन्य उत्तर की टिप्पणियों में उल्लिखित संख्या पर विचार करें । सॉर्ट किए गए नंबरों को देखते हुए, मैं इसे झूठा लौटाने के लिए मानूंगा, लेकिन जब शून्य हटाते हैं तो यह सच हो जाता है।
एमिगा

2
@tfbninja क्या एमिग्ना के परीक्षण मामले के लिए आउटपुट सत्य या मिथ्या है?
अदनान

4

दरअसल , 18 बाइट्स

;;ru@≈*♂$♂S♂≈╔@S≈=

इसे ऑनलाइन आज़माएं! (अपेक्षित इनपुट)

स्पष्टीकरण:

;;ru@≈*♂$♂S♂≈╔@S≈=
;;                  duplicate input twice
  ru                range(1, len(input)+1)
    @≈              convert input to an integer
      *             multiply input by each element in range
       ♂$♂S♂≈       convert each product to a string, sort the digits, and convert back to int
             ╔      uniquify: remove duplicate elements
              @S≈   sort input and convert to int
                 =  compare equality

1
@tfbninja मैंने अग्रणी शून्य के बारे में बिट से पहले यह पोस्ट किया। मेरे पास एक और 15-बाइट समाधान है जो प्रमुख शून्य के साथ काम करेगा जिसे मैं जल्द ही संपादित करूंगा।
Mego

1
18 बाइट्स प्राप्त करने के लिए आप किस वर्ण एन्कोडिंग का उपयोग करते हैं? मैंने UTF-8 की कोशिश की और 32 बाइट्स में इसका वजन हुआ। संपादित करें: ओह, मैं देख रहा हूं, यह कोड पृष्ठ 437 है।
छद्म नाम

3

पायथन, 86 बाइट्स

lambda n:all(sorted(n)==sorted(str(int(n)*i).zfill(len(n)))for i in range(2,len(n)+1))

इसे ऑनलाइन आज़माएं!

तार के रूप में इनपुट संख्या।


1
@tfbninja किसी भी अजगर (2 और 3) पर काम करना चाहिए
ऊरीएल

1
यह 0212765957446808510638297872340425531914893617 के साथ विफल क्यों होता है?
J42161217

@ जेनी_मथी अब ऐसा नहीं है।
यूरिल


2

हास्केल, 36 33 32 45 बाइट्स

c n=let l=length n in(10^l-1)`div`read n==l+1

उदाहरण का उपयोग:

*Main> c "142857"
True

मुझे नहीं लगता कि इस एल्गोरिथ्म को किसी स्पष्टीकरण की आवश्यकता है।

सहने

सुझाव के लिए धन्यवाद: सामान्य प्रदर्शन नाम, लकोनी।

सुधार के लिए धन्यवाद: एंटनी हैचकिंस।

EDIT नोप, "33" पर विफल रहती है।


1
क्या यह 052631578947368421 के लिए काम करता है?
J42161217

हां, यह उस मामले में सही है।
छद्म नाम


1
के <1बजाय आप का उपयोग कर सकते हैं ==0? यहाँ भी एक TIO लिंक है: इसे ऑनलाइन आज़माएं!
लैकोनी

लगभग 111111 कैसे?
एंटनी हैचकिंस

2

डीसी, 24 25 बाइट्स

[1]sa0?dZd10r^1-r1+/rx=ap

प्रिंट "0" यदि संख्या चक्रीय नहीं है, अन्यथा "1"। एक स्ट्रिंग के रूप में दर्ज की जाने वाली संख्या की आवश्यकता होती है।

उदाहरण का उपयोग:

$ echo "[052631578947368421]" | dc -e '[1]sa0?dZd10r^1-r1+/rx=ap'
1
$ echo "[052631578947368422]" | dc -e '[1]sa0?dZd10r^1-r1+/rx=ap'
0

सहने

स्पष्टीकरण: एक ही एल्गोरिथ्म मेरे हास्केल सबमिशन के रूप में।

EDIT नोप, "33" पर विफल रहती है।


1

गणितज्ञ, 81 बाइट्स

Length@Union@PadLeft[Sort/@IntegerDigits[ToExpression@#*Range@StringLength@#]]<2&

इसे ऑनलाइन आज़माएं!

इनपुट स्ट्रिंग

इनपुट

"010309278350515463917525773195876288659793814432989690721649484536082474226804123711340206185567"

उत्पादन

सच


FromDigitsसे कम हैToExpression
जुंगह्वान मिन

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