संख्या के विभाजकों की गणना करें


26

परिचय

यह एक बहुत ही सरल चुनौती है: बस एक संख्या के विभाजकों को गिनें। हमने पहले भी इसी तरह की और अधिक जटिल चुनौती का सामना किया है , लेकिन मैं इसे प्रवेश-स्तर पर लाने का इरादा कर रहा हूं।

चुनौती

एक ऐसा प्रोग्राम या फ़ंक्शन बनाएं, जिसमें एक सख्ती से सकारात्मक पूर्णांक दिया जाता Nहै, जिसमें 1 और सहित कितने विभाजक, आउटपुट या रिटर्न होते हैं N

इनपुट: एक पूर्णांक> 0. आप मान सकते हैं कि आपकी भाषा के मूल संख्यात्मक प्रकार में संख्या का प्रतिनिधित्व किया जा सकता है।

आउटपुट: इसके पास सकारात्मक पूर्णांक विभाजकों की संख्या, जिसमें 1 और संख्या भी शामिल है।

प्रस्तुतियाँ बाइट्स में बनाई जाएंगी । आपको यह वेबसाइट आसान लग सकती है, हालांकि आप अपनी बाइट की गणना के लिए किसी भी उचित विधि का उपयोग कर सकते हैं।

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

संपादित करें: ऐसा लगता है कि FryAmTheEggman के 5-बाइट पायथ का जवाब विजेता है! नए जवाब प्रस्तुत करने के लिए स्वतंत्र महसूस करें, हालांकि; यदि आप कुछ छोटा कर सकते हैं, तो मैं स्वीकृत उत्तर बदल दूंगा।

परीक्षण के मामलों

ndiv(1) -> 1
ndiv(2) -> 2
ndiv(12) -> 6
ndiv(30) -> 8
ndiv(60) -> 12
ndiv(97) -> 2
ndiv(100) -> 9

लीडरबोर्ड

यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है।

यह सुनिश्चित करने के लिए कि आपका उत्तर दिखाई देता है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:

# Language Name, N bytes

Nआपके प्रस्तुत करने का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:

# Ruby, <s>104</s> <s>101</s> 96 bytes

यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फाइलों का योग है या आप अलग से झंडा लगाने वाले दंड को सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक स्कोर अंतिम संख्या है:

# Perl, 43 + 2 (-p flag) = 45 bytes

आप भाषा के नाम को एक लिंक भी बना सकते हैं जो लीडरबोर्ड स्निपेट में दिखाई देगा:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

जवाबों:


19

अजगर, ५

l{yPQ

इनपुट के प्रमुख कारकों पर सबसेट ऑपरेशन का उपयोग करता है, फिर केवल कारकों की विशिष्ट सूची रखता है और इस गणना को वापस करता है।

परीक्षण सूट

व्याख्या

एक उदाहरण के रूप में 25 का उपयोग करना, ताकि सबसेट सूची बहुत लंबी न हो

l{yPQ     ## implicit:  Q = eval(input()) so Q == 25
   PQ     ## Prime factors of Q, giving [5, 5]
  y       ## All subsets, giving [[], [5], [5], [5, 5]]
 {        ## Unique-fiy, giving [[], [5], [5, 5]]
l         ## Length, print implicity

चित्त आकर्षण करनेवाला। अच्छा दृष्टिकोण
साइओस

14

सी ++ सी, 43 57 56 46 43 बाइट्स

मार्टिन ब्यूटनर के सुझावों पर:

i,c;f(n){for(i=c=n;i;n%i--&&--c);return c;}

1
रुको, चलो दोनों को 43 के बजाय नीचे गिनते हैं:i,c;f(n){for(i=c=n;i;n%i--&&--c);return c;}
मार्टिन एंडर

@ मार्टिनबटनर वाह यार वाह। गंभीरता से! _ / \ _
साहिल अरोरा

1
सुंदर! : ~)!
स्वीपरपटाटो

11

लैब व्यू, 4938 बाइट्स

वैसे इसका स्पष्ट रूप से कोड गोल्फ के लिए अनुकूल नहीं है, लेकिन जो भी हो, इसलिए मेरी पहली पोस्ट के लिए और यहाँ लोलज़ जाता है। यहाँ छवि विवरण दर्ज करें


प्रोग्रामिंग पहेलियाँ और कोड गोल्फ में आपका स्वागत है! यदि आप मुझसे पूछते हैं तो बुरा नहीं मानते, तो आपने यह कैसे स्कोर किया? मुझे मेटा पर कोई मिसाल नहीं मिली।
bkul

मैंने इसे सहेजा और इसका आकार लिया
इमेल

और यह 4.938 बाइट्स था? उदाहरण के लिए किलोबाइट्स नहीं?
bkul

सटीकता के लिए मैंने बाइट काउंट को kb काउंट नहीं लिया
Eumel

4
@ बकुल मुझे लगता है कि भ्रम के कारण है ., जो मुझे पूरा यकीन है कि एक हजार विभाजक के रूप में होता है, न कि एक दशमलव बिंदु (जैसा कि कुछ भाषाओं में आम है)।
मार्टिन एंडर

10

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

f n=sum[0^mod n i|i<-[1..n]]

यहां ट्रिक यह परीक्षण करने के लिए है कि क्या कोई 0संकेतक संकेतक फ़ंक्शन का उपयोग कर रहा है या नहीं 0^

0^0 = 1
0^_ = 0

यह काम करता है क्योंकि 0 की कोई भी सकारात्मक शक्ति 0 है, जबकि 0 ^ 0 संयुक्त रूप से 1 का खाली उत्पाद है।

इसकी तुलना फ़िल्टरिंग से करें

f n=sum[1|i<-[1..n],mod n i<1]

7

डायलॉग एपीएल , 7 6 बाइट्स

≢∘∪⊢∨⍳

यह एक अनाम फ़ंक्शन है जिसे नाम दिया जा सकता है और फिर प्रत्येक के लिए पुन: उपयोग किया जा सकता है ( ¨) परीक्षण मामले निम्नानुसार हैं:

      f ← ≢∘∪⊢∨⍳
      f¨ 1 2 12 30 60 97 100
1 2 6 8 12 2 9

स्पष्टीकरण:

 ┌─┴──┐  
 ∪  ┌─┼─┐
 ∘  │ ∨ │
 ̸≡  ⊢   ⍳

अपने और पूर्णांकों के प्रत्येक तक GCD के अद्वितीय की गणना करें ।

एक बाइट बचाने के लिए ngn के लिए धन्यवाद।


पुराना संस्करण: +/0=⍳|⊢

यह इस तरह काम करता है:

  ┌─┴─┐      
  / ┌─┼───┐  
┌─┘ 0 = ┌─┼─┐
+       ⍳ | ⊢

⍳|⊢1-थ्रू-तर्क डिवीज़न-शेष तर्क
0=बूलियन यदि 0 बूलियन के विभाजन रेस्ट
+/सम के बराबर है , अर्थात लोगों की गिनती।


6

पायथन 2, 37 बाइट्स

f=lambda n,i=1:i/n or(n%i<1)+f(n,i+1)

एक पुनरावर्ती कार्य। iदिव्य परीक्षण में वैकल्पिक इनपुट का परीक्षण किया जा रहा है। अभिव्यक्ति (n%i<1)विभाज्यता का परीक्षण करती है, True(जो बराबरी के लिए 1) भाजक के लिए। परिणाम के लिए पुनरावर्ती अभिव्यक्ति में जोड़ा जाता है i+1। जब i==nपहुँच जाता है, पूर्णांक मंजिल-विभाजन का i/nमूल्यांकन करता है 1, और उस मूल्य को आधार मामले के रूप में लौटा दिया जाता है, जिसका लेखा-जोखा nस्वयं का विभाजक होता है n


38:

lambda n:sum(n%-~i<1for i in range(n))

एक अनाम फ़ंक्शन। के 1माध्यम से सभी संभव विभाजकों का परीक्षण n। इस से स्थानांतरित कर दिया है 0के माध्यम से n-1में range(n)उपयोग करते हुए -~, जो कहते हैं 1। Bools संक्षेप तथ्य का उपयोग करता है कि अजगर व्यवहार करता है True/ Falseके रूप में 1/ 0


6

रेटिना , 17 बाइट्स

(?<=(.+))(?=\1*$)

इनपुट इन अनरी , दशमलव में आउटपुट।

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

जब एक एकल रेगेक्स के साथ आह्वान किया जाता है, तो रेटिना केवल मैचों को गिनता है। रेगेक्स अपने आप में एक स्थिति से मेल खाता है , जहां इसके बाईं ओर की असमान संख्या पूरे इनपुट का विभाजक है। मैं इस तथ्य का उपयोग भी कर रहा हूं कि लुकरॉइड परमाणु हैं, इसलिए मुझे ^लंगर का उपयोग करने की आवश्यकता नहीं है ।

पहला लुकबाइंड समूह में पूरे उपसर्ग को दर्शाता है 1। यह कभी भी विफल नहीं हो सकता है, इसलिए खोज के बाद हम जानते हैं कि समूह 1 में क्या है और यह किसी भी अधिक को नहीं बदलेगा।

लुकहेड तब जांचता है कि क्या हम पकड़े गए स्ट्रिंग (हमारे संभावित विभाजक) को 0 या अधिक बार दोहराकर स्ट्रिंग के अंत तक पहुंच सकते हैं।


6

जे, 10 बाइट्स

[:*/1+_&q:

यह एक अनाम, एकान्त क्रिया है। यह गणना करता है σ 0 (Πp कश्मीर α कश्मीर ) के रूप में Π (α कश्मीर +1)

इसे Jjs के साथ ऑनलाइन आज़माएं

यह काम किस प्रकार करता है

[:*/1+_&q:    Right argument: y

      _&q:    Compute all exponents of the prime factorization of y.
    1+        Add 1 to each exponent.
[:*/          Reduce by mutiplication.

मुझे नहीं लगता कि q:इसे अनुमति दी गई है क्योंकि यह चुनौती का एक अनिवार्य हिस्सा है। कैसे बस के बारे में[:+/0=]|~1+i.
फूज़एक्सएल

यह इस उत्तर का एक डुप्लिकेट होगा । इसके अलावा, अंतर्निहित इन्स डिफ़ॉल्ट रूप से निषिद्ध नहीं हैं, और चुनौती उन्हें उल्लेख नहीं करती है।
डेनिस

एक चुनौती के सभी / लगभग सभी काम करने वाले बिल्डरों को आमतौर पर मना किया जाता है, लेकिन मैं आपके तर्क का पालन कर सकता हूं q:
फ़ूजएक्सएक्सएल

1
वो नहीं हैं। काश वे होते, लेकिन वे नहीं हैं।
डेनिस

हरामफ घंटावर जो थोड़ा चूसता है।
फू्रजएक्सएल

6

गोल्फस्क्रिप्ट, 19 18 17 13 बाइट्स

मार्टिन ब्यूटनर को धन्यवाद के साथ ।

~.,\{\)%!}+,,

यह काम किस प्रकार करता है

~               Evaluate the input, n
 .,             Duplicate the input, create array [0..n-1]
   \            Swap array and n
    {    }+     Add n to block == {n block}
     \          Swap n with i in array
      )         Increment i
       %        n mod i
        !       Logical not so that 1 if divisible by n else 0
           ,    Filter array using block for all i divisible by n
            ,   Get length of the filtered array, the answer

भी

से @Peter टेलर , भी 13 बाइट्स में।

~:X,{)X\%!},,

यह काम किस प्रकार करता है

~               Evaluate the input
 :X             Store input in variable X
   ,            Create array [0..X-1]
    {     },    Filter array using the following block
     )          Increment i in array
      X\        Add X to stack, swap with i
        %       X mod i,
         !      Logical not so that 1 if divisible by n else 0
            ,   Get length of the filtered array, the answer

उसी लंबाई के लिए आप भी हो सकते हैं~:X,{)X\%!},,
पीटर टेलर

4

जे, १३ १२ ११ बाइट्स

जे में मेरा पहला गोल्फ मैं अभी भी इसे सीख रहा हूं।

डेनिस के लिए एक बाइट धन्यवाद बचा लिया।

यादृच्छिक के लिए एक और बाइट धन्यवाद बचा लिया।

1+/@,0=i.|]

स्पष्टीकरण:

1+/@,0=i.|]
       i.        the array 0 .. n-1
         |]      mod n
     0=          replace 0 by 1, and nonzero entries by 0
1   ,            prepend 1 to the array
 +/@             take the sum

3

अरसीओउ , 12 बाइट्स

जशन शुरु करते हैं!

(F(x)(_(d/ x

यह बिल्ट-इन फ़ंक्शन का उपयोग करता है d/। यहां एक संस्करण बिना बिल्ट-इन (27 बाइट्स) है:

(F(x)(](+(f i(_ 1 x)(‰ x i

स्पष्टीकरण:

(F(x)              ; Anonymous function with one parameter x
  (]               ; Increment
    (+             ; Sum
      (f i(_ 1 x)  ; For i in range from 1 to x-1 inclusive:
        (‰ x i     ; x divisible by i

3

सीजेएम, 11 बाइट्स

ri_,:)f%0e=

इसका परीक्षण यहां करें।

व्याख्या

CJam में इसके लिए बिल्ट-इन नहीं है, इसलिए हम ट्रायल डिवीजन कर रहे हैं।

ri  e# Read input and convert to integer N.
_,  e# Duplicate and turn into range [0 1 ... N-1]
:)  e# Increment each element in the range to get [1 2 ... N]
f%  e# Take N modulo each of the list elements.
0e= e# Count the zeroes.

बोनस

यहाँ 12 बाइट्स पर एक दिलचस्प समाधान है (जो मुझे संदेह है कि J जैसी भाषा में सबसे छोटा हो सकता है):

ri_)2m*::*e=

परिणाम गुणा तालिका nमें दिखाई देने वाली संख्या के बराबर है n x n:

ri  e# Read input and convert to integer N.
_)  e# Duplicate and increment.
2m* e# Take Cartesian product of [0 1 ... N] with itself.
::* e# Compute the product of each pair.
e=  e# Count the occurrences of N.

3

मतलाब, 20 बाइट्स

k mod nप्रत्येक के लिए प्रदर्शन करें k = 1,...,n, फिर प्रदर्शन करें not(जो प्रत्येक नॉनज़र को शून्य और प्रत्येक शून्य से 1 तक बदल देता है) और उन सभी मूल्यों को योग करें।

@(n)sum(~mod(n,1:n))

यह मेरा दृष्टिकोण भी होता!
लुइस मेंडू

दिलचस्प है कि यह उसी तरह की लंबाई है length(divisors(n))
संचय

@ सनकीपन आपको अभी भी एक जोड़ने @(n)के लिए इसे एक वैध सबमिसन बनाने की आवश्यकता होगी
दोष

3

जूलिया, 20 बाइट्स

n->sum(i->n%i<1,1:n)

यह एक अनाम फ़ंक्शन है जो निम्नानुसार काम करता है: 1 से प्रत्येक पूर्णांक के लिए इनपुट, परीक्षण करें कि क्या इनपुट modulo पूर्णांक शून्य है। यदि हां, तो मूल्य होगा true, अन्यथा false। हम बूलियन्स के ऊपर योग करते हैं जो पूर्णांकों के लिए डाली जाती हैं, विभाजक की संख्या को बढ़ाती हैं।


पूर्णता के लिए शामिल एक बहुत कूलर (हालांकि बहुत अधिक लंबा) समाधान है

n->prod(collect(values(factor(n))).+1)

यह n, अर्थात के रूप में विहित फ़ैक्टराइजेशन प्राप्त \prod_{i=1}^k p_i^e_iकरता है और डिवाइसर फ़ंक्शन की गणना करता है τ(n) = \prod_{i=1}^k e_i + 1


2

PARI / जीपी, 6 बाइट्स

PARI / GP में इसके लिए एक अंतर्निहित है।

numdiv

मुझे यकीन नहीं है, लेकिन मुझे लगता है कि मेटा के अनुसार, बिल्डिंस के लिए, आप केवल इसे आराम नहीं कर सकते।
माल्टेनसेन

3
@ माल्टीनेस मुझे लगता है कि इसकी अनुमति है। meta.codegolf.stackexchange.com/a/7206/9288
alephalpha




2

रेगेक्स (.NET), 33 बाइट्स

^((?=.*$(?<=^\2*(.+?(?>\2?)))).)+

मान लें कि इनपुट और आउटपुट एकात्मक हैं, और आउटपुट रेगेक्स के मुख्य मैच से लिया गया है।

रेगेक्स का टूटना:

  • .*$ सूचक को स्ट्रिंग के अंत तक ले जाता है ताकि हमारे पास एक दिशा में पूरा इनपुट x हो।
  • (?<=^\2*(.+?(?>\2?))) दाएं से बाएं और माचिस से एक्स से 0 तक लूपिंग के लिए चेक।
    • (.+?(?>\2?)) एक "वैरिएबल" है जो पहले पुनरावृत्ति में 1 से शुरू होता है और पिछले पुनरावृत्ति में संख्या से जारी रहता है और एक्स तक लूप होता है।
    • ^\2* जाँचता है कि क्या x "चर" का एक बहु है।

यह मूल रूप से एक ही विचार है कि मेरे उत्तर की गणना Phi (पाई नहीं) के रूप में है । केवल जाँच अलग है।

RegexStorm पर रेगेक्स का परीक्षण करें ।


2

भूलभुलैया , 33 बाइट्स

?:}
  :{:}%{{
@ }   " )
!{("{;"}}

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

यह परीक्षण विभाजन को लागू करता है। मैं बाद में पूरा विवरण जोड़ूंगा। यह शायद इष्टतम नहीं है, लेकिन मुझे कुछ कम समय के साथ आने में मुश्किल हो रही है।



2

जावास्क्रिप्ट (ईएस 6), 60 57 42 40 39 37 बाइट्स

यह शायद बेहतर गोल्फ हो सकता है।

n=>{for(d=i=n;i;n%i--&&d--);return d}

संपादित करें 1: मैं सही था। लूप के लिए ब्रेसिज़ को हटा दिया।

संपादित 2: मैनटवर्क और मार्टिन ब्यूटनर के लिए धन्यवाद के साथ 40 बाइट्स के लिए गोल्फ

संपादन 3: ऊपर दिए गए C उत्तर पर फ़ंक्शन को आधार बनाकर एक बाइट की बचत

संपादित करें 4: ן nɟuɐɯɹɐ ɯ o Ne और नील के लिए धन्यवाद , लेकिन मुझे काम करने के लिए eval नहीं मिल सकता है।

संपादित करें 5: eval हटाना भूल गए।

परीक्षा

n = <input type="number" oninput='result.innerHTML=(

n=>{for(d=i=n;i;n%i--&&d--);return d}

)(+this.value)' /><pre id="result"></pre>


2
अच्छी आदतों को त्यागें। varकीवर्ड निकालें । में अधिक सुझावों जावास्क्रिप्ट में गोल्फ के लिए सुझाव और ECMAScript 6 में गोल्फ के लिए सुझाव
मैनटवर्क

2
बुरी आदतों को भी त्यागें: जब आप के बीच चुनाव हो जाए ++iऔर i++, पूर्व चुनें (इसका गोल्फ से कोई लेना-देना नहीं है)। n%i<1एक बाइट को भी बचाना चाहिए।
मार्टिन एंडर

2
केवल संक्षेप में परीक्षण किया गया:n=>{for(d=i=0;i<n;)n%++i<1&&d++;return d}
मैनटवर्क

1
38: n => eval ('के लिए (d = 0, i = n; i; d + = n% i <<1); d')
Mama Fun Roll

1
@manatwork क्यों नहीं n%++i||++d?
नील

2

पॉवरशेल, 34 बाइट्स

param($x)(1..$x|?{!($x%$_)}).Count

e.g. 

PS C:\temp> .\divisors-of-x.ps1 97
2
  • 1 से x तक संख्याओं की सूची बनाएं, उन्हें पाइपलाइन में खिलाएं |
  • (एक्स% आइटम == 0) पर पाइप लाइन को फ़िल्टर करें, संक्षेप में एक बूलियन के रूप में मॉडुलो परिणाम को कास्टिंग करके और फिर इनवेस्टर्स का उपयोग करके इसे !निष्क्रिय करना $ true हो जाता है और इसके माध्यम से अनुमति दी जाती है; builtin उपनाम का उपयोग ?के लिएWhere-Object
  • फिल्टर के माध्यम से इकट्ठा किया ()और .Countकितने आइटम

बहुत अच्छी तरह से हैक!
bkul

2

जेली , 2 बाइट्स (गैर-प्रतिस्पर्धी (फिर से))

Æd

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

मुझे लगता है कि यह अन्य जेली जवाब के बाद लागू सुविधाओं का उपयोग करता है। अगर मैं गलत हूं तो टिप्पणी करें (मैं पंक्ति में प्रत्येक वचन नहीं देख सकता, आप जानते हैं :))


2

टैक्सी, 2143 बाइट्स

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l 1 l 2 r.Pickup a passenger going to Cyclone.Pickup a passenger going to Sunny Skies Park.Go to Sunny Skies Park:n 1 r.Go to Cyclone:n 1 l.Pickup a passenger going to Firemouth Grill.Pickup a passenger going to Joyless Park.Go to Firemouth Grill:s 1 l 2 l 1 r.Go to Joyless Park:e 1 l 3 r.[i][Check next value n-i]Go to Zoom Zoom:w 1 r 2 l 2 r.Go to Sunny Skies Park:w 2 l.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l.Pickup a passenger going to Divide and Conquer.Pickup a passenger going to Sunny Skies Park.Go to Joyless Park:n 2 r 2 r 2 l.Pickup a passenger going to Cyclone.Go to Sunny Skies Park:w 1 r 2 l 2 l 1 l.Go to Cyclone:n 1 l.Pickup a passenger going to Joyless Park.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:n 2 r 2 r 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 1 l 2 l.Pickup a passenger going to Trunkers.Pickup a passenger going to Equal's Corner.Go to Trunkers:s 1 l.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan "F" if no one is waiting.Pickup a passenger going to Knots Landing.Go to Firemouth Grill:n 3 r 1 l 1 r.Pickup a passenger going to The Underground.Go to The Underground:e 1 l.Pickup a passenger going to Firemouth Grill.Go to Knots Landing:n 2 r.Go to Firemouth Grill:w 1 l 2 r.Go to Joyless Park:e 1 l 3 r.Switch to plan "N".[F][Value not a divisor]Go to Joyless Park:n 3 r 1 r 2 l 4 r.[N]Pickup a passenger going to The Underground.Go to The Underground:w 1 l.Switch to plan "E" if no one is waiting.Pickup a passenger going to Joyless Park.Go to Joyless Park:n 1 r.Switch to plan "i".[E]Go to Sunny Skies Park:n 3 l 2 l 1 l.Pickup a passenger going to What's The Difference.Go to Firemouth Grill:s 1 l 1 l 1 r.Pickup a passenger going to What's The Difference.Go to What's The Difference:w 1 l 1 r 2 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:e 3 r.Pickup a passenger going to Post Office.Go to Post Office:n 1 l 1 r.

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

Ungolfed:

Go to Post Office: west 1st left 1st right 1st left.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: south 1st left 1st right.
Pickup a passenger going to Cyclone.
Go to Cyclone: north 1st left 1st left 2nd right.
Pickup a passenger going to Cyclone.
Pickup a passenger going to Sunny Skies Park.
Go to Sunny Skies Park: north 1st right.
Go to Cyclone: north 1st left.
Pickup a passenger going to Firemouth Grill.
Pickup a passenger going to Joyless Park.
Go to Firemouth Grill: south 1st left 2nd left 1st right.
Go to Joyless Park: east 1st left 3rd right.
[i]
[Check next value n-i]
Go to Zoom Zoom: west 1st right 2nd left 2nd right.
Go to Sunny Skies Park: west 2nd left.
Pickup a passenger going to Cyclone.
Go to Cyclone: north 1st left.
Pickup a passenger going to Divide and Conquer.
Pickup a passenger going to Sunny Skies Park.
Go to Joyless Park: north 2nd right 2nd right 2nd left.
Pickup a passenger going to Cyclone.
Go to Sunny Skies Park: west 1st right 2nd left 2nd left 1st left.
Go to Cyclone: north 1st left.
Pickup a passenger going to Joyless Park.
Pickup a passenger going to Divide and Conquer.
Go to Divide and Conquer: north 2nd right 2nd right 1st right.
Pickup a passenger going to Cyclone.
Go to Cyclone: east 1st left 1st left 2nd left.
Pickup a passenger going to Trunkers.
Pickup a passenger going to Equal's Corner.
Go to Trunkers: south 1st left.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner: west 1st left.
Switch to plan "F" if no one is waiting.
Pickup a passenger going to Knots Landing.
Go to Firemouth Grill: north 3rd right 1st left 1st right.
Pickup a passenger going to The Underground.
Go to The Underground: east 1st left.
Pickup a passenger going to Firemouth Grill.
Go to Knots Landing: north 2nd right.
Go to Firemouth Grill: west 1st left 2nd right.
Go to Joyless Park: east 1st left 3rd right.
Switch to plan "N".
[F]
[Value not a divisor]
Go to Joyless Park: north 3rd right 1st right 2nd left 4th right.
[N]
Pickup a passenger going to The Underground.
Go to The Underground: west 1st left.
Switch to plan "E" if no one is waiting.
Pickup a passenger going to Joyless Park.
Go to Joyless Park: north 1st right.
Switch to plan "i".
[E]
Go to Sunny Skies Park: north 3rd left 2nd left 1st left.
Pickup a passenger going to What's The Difference.
Go to Firemouth Grill: south 1st left 1st left 1st right.
Pickup a passenger going to What's The Difference.
Go to What's The Difference: west 1st left 1st right 2nd right 1st left.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: east 3rd right.
Pickup a passenger going to Post Office.
Go to Post Office: north 1st left 1st right.

स्पष्टीकरण:

Convert stdin to a number and store it in three locations for three purposes:
   Original (Sunny Skies Park)
   Counter for tested values (Joyless Park)
   Counter for divisors found (Firemouth Grill)
Divide the original by each Joyless Park value in turn.
If the division result equals the truncated division result, then it's a divisor.
When a divisor is found, subtract one from Firemouth Grill.
Repeat until Joyless Park hits zero.
Pickup the original from Sunny Skies Park and subtract the value from Firemouth Grill.
Convert the result to a string and print to stdout.


2

एक्सेल फॉर्मूला, 42 28 बाइट्स

संपादित करें: मुझे एहसास हुआ कि मुझे INDIRECT14 बाइट्स बचाने की आवश्यकता नहीं है !

निम्नलिखित को एक सरणी सूत्र ( Ctrl+ Shift+ Enter) के रूप में दर्ज किया जाना चाहिए :

=SUM(--NOT(MOD(N,ROW(1:N))))

जहां N परीक्षण करने के लिए संख्या है।

उदाहरण:

{SUM(--NOT(MOD(32,ROW(1:32))))}
Result: 6
{SUM(--NOT(MOD(144,ROW(1:144))))}
Result: 15

स्पष्टीकरण:

SUM(--NOT(MOD(N,ROW(1:N))))       Full formula

                ROW(1:N)          Generates an array of row numbers e.g {1;2;3;4;...N}
          MOD(N,ROW(1:N))         Does N MOD {1;2;3;4;,...N}
      NOT(MOD(N,ROW(1:N)))        Coerces zeros to ones, so that they may be counted, but actually returns an array of TRUE;FALSE;FALSE;...
    --NOT(MOD(N,ROW(1:N)))        Coerces the TRUEs to 1s and FALSEs to 0s.
SUM(--NOT(MOD(N,ROW(1:N))))       Sum the ones for the result.

2

05AB1E , 2 बाइट्स

Ñg

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

सुंदर सीधे-आगे, लेकिन यहाँ यह वैसे भी है:

Ñ   # Push a list of divisors of the (implicit) input-integer
    #  i.e. 100 → [1,2,4,5,10,20,25,50,100]
 g  # Pop and push the length of this list
    #  i.e. [1,2,4,5,10,20,25,50,100] → 9
    # (which is output implicitly as result)


1

मिंकोलंग 0.13 , 16 बाइट्स

ndd[0ci1+%,-]-N.

यहां सभी मामलों की जाँच करें।

व्याख्या

ndd           Takes number from input and duplicates it twice (n)
[             Opens for loop that runs n times
 0c           Copies bottom of stack to top (n)
   i1+        Loop counter + 1 (d)
      %       Modulo - pops d,n, then pushes n%d
       ,      Not - 1 if equal to 0, 0 otherwise
        -     Subtract
         ]    Close for loop
-             Subtract (n - 1 for each non-divisor)
N.            Output as number and stop.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.