\ _ $n\$-संख्या संख्या

Sep 14 2020

एक सकारात्मक पूर्णांक \$x\$एक है \$n\$-संख्या संख्या if \$\sigma(x) = nx\$, कहाँ \ _$\sigma(x)\$भाजक राशि समारोह है। उदाहरण के लिए, \$120\$एक है \$3\$-संख्या संख्या क्योंकि इसके भाजक योग \ _$360\$:

$$360 = 3\times120 = 1+2+3+4+5+6+8+10+12+15+20+24+30+40+60+120$$

तथा

$$926073336514623897600 = 6\times154345556085770649600 = 1+2+3+4+5+6+7+8+9+10+11+12+\dots+51448518695256883200+77172778042885324800+154345556085770649600$$

तो \ _$154345556085770649600\$एक है \$6\$-प्रक्रिया संख्या।

आप एक पूर्णांक ले रहे हैं \$x\$इनपुट और आउटपुट के रूप में एक मान \$n\$, ऐसा \ _$x\$एक है \$n\$-प्रक्रिया संख्या। अगर ऐसी कोई \$n\$मौजूद है, आप किसी भी पूर्णांक को आउटपुट कर सकते हैं जो सकारात्मक पूर्णांक नहीं है। आपको कभी भी अपनी भाषा की सीमा से बाहर इनपुट प्राप्त नहीं होगा, लेकिन आपके एल्गोरिथ्म को मनमाने ढंग से बड़े \ _ के लिए काम करना होगा$x\$।

यह कोड-गोल्फ है इसलिए बाइट्स जीत में सबसे छोटा कोड है।

मिनी चुनौती: जेली में 5 बाइट मारो

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

    x -> n
    1 -> 1
    2 -> 0
    3 -> 0
    4 -> 0
    5 -> 0
    6 -> 2
   28 -> 2
  120 -> 3
  496 -> 2
  500 -> 0
  672 -> 3
30240 -> 4
154345556085770649600 -> 6

जवाब

9 Zgarb Sep 14 2020 at 11:28

भूसी , 4 बाइट्स

¦¹ΣḊ

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

आखिरी टेस्ट केस बार आउट हुआ।

व्याख्या

¦¹ΣḊ   Input is a number x.
   Ḋ   List of divisors.
  Σ    Sum.
¦      Division if divisible, 0 if not
 ¹     by x.

¦ आमतौर पर सिर्फ एक विभाज्यता परीक्षण होता है, लेकिन यहां इसका रिटर्न वैल्यू उपयोगी है।

8 Sisyphus Sep 14 2020 at 10:59

जेली , 5 बाइट्स

R×iÆs

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

स्पष्टीकरण:

      - Explanation (sample for input 6)
R     - Range ([1, 2, 3, 4, 5, 6])
 ×    - Multiply by input ([6, 12, 18, 24, 30, 36])
   Æs - Divisor sum (12)
  i   - Index of divisor sum in list, else 0 (2)
7 xash Sep 14 2020 at 05:24

ब्रेकीलॉग , 6 बाइट्स

f+;?/ℕ

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

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

f+;?/ℕ
f+     the sum of the factors
  ;?/ℕ divided by the input
     ℕ is a natural number

वैकल्पिक संस्करण, मुझे लगता है कि कूलर है, लेकिन अब:

f+~×[?,.]∧
f+          the sum of the factors
  ~×        unifies with the multiplication of
    [?,.]   the input and the output
         ∧  return the output
6 Bismarck71 Sep 14 2020 at 14:36

05AB1E , 7 6 बाइट्स

Ý*IÑOk

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

स्पष्टीकरण:

Ý*IÑOk>
Ý        0-Index inclusive range of input (6 -> [1, 2, 3, 4, 5, 6])
 *       Multiply by input ([6, 12, 18, 24, 30, 36])
  IÑO    Get input -> divisors -> sum (6 -> [1, 2, 3, 6] -> 12)
     k   0-Index of divisor-sum in array or -1 if not found. ([6, >12<, 18, 24, 30, 36] -> 1)

मैंने सिर्फ Sisyphus का तरीका इस्तेमाल किया। यह शायद नीचे गोल्फ हो सकता है या यहां तक ​​कि अधिक कुशल बनाया जा सकता है, लेकिन मुझे ऐसा करने के लिए 05AB1E ज्ञान की कमी है। बस मैंने सोचा कि मैं इसे टाइम पास करने के लिए एक शॉट दूंगा।

-1 बाइट्स ओव्स के लिए धन्यवाद

5 AZTECCO Sep 14 2020 at 07:30

सी (जीसीसी) , 47 बाइट्स

s,i;f(x){for(i=s=x;--i;)s+=x%i?0:i;s/=s%x*s+x;}

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

लौटता है nया 0।

5 JoKing Sep 14 2020 at 11:23

एपीएल (डायलॉग यूनिकोड) , 16 15 13 बाइट्स

इंगित करने के लिए बब्बलर के लिए धन्यवाद मैं बाइट्स के एक जोड़े को बचाने के लिए आउटपुट स्वरूप को बदल सकता हूं

⍸×∘⍳⍨=1⊥∘∪⊢∨⍳

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

nजब nमौजूद है, और एक खाली सरणी अन्यथा की एक सिंगलटन सूची को आउटपुट करता है । के सूचकांक ⍸( 1⊥) को जोड़ता है जहां ( ) (भाजक ∪⊢∨⍳) ( =) इनपुट के एक से अधिक ( ) के बराबर है ×∘⍳⍨। मैं केवल इंडेक्स खोजने के लिए उपयोग करता हूं ⍸और =इसके बजाय ⍳क्योंकि यह खाली सूची देता है जब तत्व सूची की लंबाई के बजाय नहीं होता है।

4 KevinCruijssen Sep 14 2020 at 16:17

व्हॉट्सएप , 153 बाइट्स

[S S S N
_Push_0][S N
S _Duplicate_0][T   N
T   T   _Read_STDIN_as_integer][T   T   T   _Retrieve_input][S N
S _Duplicate_input][S N
S _Duplicate_input][N
S S N
_Create_Label_LOOP][S S S T N
_Push_1][T  S S T   _Subtract][S N
S _Duplicate][N
T   S S N
_If_0_Jump_to_Label_REACHED_ZERO][S T   S S T   S N
_Copy_0-based_2nd_input][S T    S S T   N
_Copy_0-based_1st_integer][T    S T T   _Modulo][N
T   S T N
_If_0_Jump_to_Label_ADD_TO_SUM][N
S N
N
_Jump_to_Label_LOOP][N
S S T   N
_Create_Label_ADD_TO_SUM][S N
T   _Swap_top_two][S T  S S T   N
_Copy_0-based_1st_integer][T    S S S _Add_top_two][S N
T   _Swap_top_two][N
S N
N
_Jump_to_Label_LOOP][N
S S S N
_Create_Label_REACHED_ZERO][S N
N
_Discard_top][S N
S _Duplicate_top][S T   S S T   S N
_Copy_0-based_2nd_input][T  S T T   _Modulo][N
T   S S S N
_If_0_Jump_to_Label_DIVISIBLE][S S S N
_Push_0][N
S N
S T 
_Jump_to_Label_OUTPUT][N
S S S S N
_Create_Label_DIVISIBLE][S N
T   _Swap_top_two][T    S T S _Integer_divide_top_two][N
S S S T N
_Create_Label_OUTPUT][T N
S T _Output_as_integer]

पत्र S(स्थान), T(टैब), और N(नई-पंक्ति) केवल हाइलाइटिंग के रूप में जोड़े गए।
[..._some_action]केवल स्पष्टीकरण के रूप में जोड़ा गया।

इसे ऑनलाइन आज़माएं (कच्चे स्थान, टैब और नई-नई लाइनों के साथ)।

छद्म कोड में स्पष्टीकरण:

Integer input = STDIN as input
Integer sum = input
Integer i = input
Start LOOP:
  i = i - 1
  If(i == 0):
    Jump to Label REACHED_ZERO
  If(input % i == 0):
    sum = sum + i
  Go to next iteration of LOOP

Label REACHED_ZERO:
  Integer output
  If(sum % input == 0):
    output = sum integer-divided by input
  Else:
    output = 0

  Print output as integer to STDOUT

उदाहरण रन: input = 6

Command    Explanation                       Stack         Heap   STDIN  STDOUT  STDERR

SSSN       Push 0                            [0]
SNS        Duplicate top (0)                 [0,0]
TNTT       Read STDIN as integer             [0]           {0:6}  6
TTT        Retrieve at address (0)           [6]           {0:6}
SNS        Duplicate top (6)                 [6,6]         {0:6}
SNS        Duplicate top (6)                 [6,6,6]       {0:6}
NSSN       Create Label LOOP                 [6,6,6]       {0:6}
 SSSTN     Push 1                            [6,6,6,1]     {0:6}
 TSST      Subtract top two (6-1)            [6,6,5]       {0:6}
 SNS       Duplicate top (5)                 [6,6,5,5]     {0:6}
 NTSSN     If 0: Jump to Label REACHED_ZERO  [6,6,5]       {0:6}
 STSSTSN   Copy 0-based 2nd (6)              [6,6,5,6]     {0:6}
 STSSTN    Copy 0-based 1st (5)              [6,6,5,6,5]   {0:6}
 TSTT      Modulo top two (6%5)              [6,6,5,1]     {0:6}
 NTSTN     If 0: Jump to Label ADD_TO_SUM    [6,6,5]       {0:6}
 NSNN      Jump to Label LOOP                [6,6,5]       {0:6}

 SSSTN     Push 1                            [6,6,5,1]     {0:6}
 TSST      Subtract top two (5-1)            [6,6,4]       {0:6}
 SNS       Duplicate top (4)                 [6,6,4,4]     {0:6}
 NTSSN     If 0: Jump to Label REACHED_ZERO  [6,6,4]       {0:6}
 STSSTSN   Copy 0-based 2nd (6)              [6,6,4,6]     {0:6}
 STSSTN    Copy 0-based 1st (4)              [6,6,4,6,4]   {0:6}
 TSTT      Modulo top two (6%4)              [6,6,4,2]     {0:6}
 NTSTN     If 0: Jump to Label ADD_TO_SUM    [6,6,4]       {0:6}
 NSNN      Jump to Label LOOP                [6,6,4]       {0:6}

 SSSTN     Push 1                            [6,6,4,1]     {0:6}
 TSST      Subtract top two (4-1)            [6,6,3]       {0:6}
 SNS       Duplicate top (3)                 [6,6,3,3]     {0:6}
 NTSSN     If 0: Jump to Label REACHED_ZERO  [6,6,3]       {0:6}
 STSSTSN   Copy 0-based 2nd (6)              [6,6,3,6]     {0:6}
 STSSTN    Copy 0-based 1st (3)              [6,6,3,6,3]   {0:6}
 TSTT      Modulo top two (6%3)              [6,6,3,0]     {0:6}
 NTSTN     If 0: Jump to Label ADD_TO_SUM    [6,6,3]       {0:6}
 NSSTN     Create Label ADD_TO_SUM           [6,6,3]       {0:6}
  SNT      Swap top two                      [6,3,6]       {0:6}
  STSSTN   Copy 0-based 1st (3)              [6,3,6,3]     {0:6}
  TSSS     Add top two (6+3)                 [6,3,9]       {0:6}
  SNT      Swap top two                      [6,9,3]       {0:6}
  NSNN     Jump to Label LOOP                [6,9,3]       {0:6}

 SSSTN     Push 1                            [6,9,3,1]     {0:6}
 TSST      Subtract top two (3-1)            [6,9,2]       {0:6}
 SNS       Duplicate top (2)                 [6,9,2,2]     {0:6}
 NTSSN     If 0: Jump to Label REACHED_ZERO  [6,9,2]       {0:6}
 STSSTSN   Copy 0-based 2nd (6)              [6,9,2,6]     {0:6}
 STSSTN    Copy 0-based 1st (5)              [6,9,2,6,2]   {0:6}
 TSTT      Modulo top two (6%5)              [6,9,2,0]     {0:6}
 NTSTN     If 0: Jump to Label ADD_TO_SUM    [6,9,2]       {0:6}
  SNT      Swap top two                      [6,2,9]       {0:6}
  STSSTN   Copy 0-based 1st (2)              [6,2,9,2]     {0:6}
  TSSS     Add top two (9+2)                 [6,2,11]      {0:6}
  SNT      Swap top two                      [6,11,2]      {0:6}
  NSNN     Jump to Label LOOP                [6,11,2]      {0:6}

 SSSTN     Push 1                            [6,11,2,1]    {0:6}
 TSST      Subtract top two (2-1)            [6,11,1]      {0:6}
 SNS       Duplicate top (1)                 [6,11,1,1]    {0:6}
 NTSSN     If 0: Jump to Label REACHED_ZERO  [6,11,1]      {0:6}
 STSSTSN   Copy 0-based 2nd (6)              [6,11,1,6]    {0:6}
 STSSTN    Copy 0-based 1st (1)              [6,11,1,6,1]  {0:6}
 TSTT      Modulo top two (6%1)              [6,11,1,0]    {0:6}
 NTSTN     If 0: Jump to Label ADD_TO_SUM    [6,11,1]      {0:6}
  SNT      Swap top two                      [6,1,11]      {0:6}
  STSSTN   Copy 0-based 1st (1)              [6,1,11,1]    {0:6}
  TSSS     Add top two (11+1)                [6,1,12]      {0:6}
  SNT      Swap top two                      [6,12,1]      {0:6}
  NSNN     Jump to Label LOOP                [6,12,1]      {0:6}

 SSSTN     Push 1                            [6,12,1,1]    {0:6}
 TSST      Subtract top two (1-1)            [6,12,0]      {0:6}
 SNS       Duplicate top (1)                 [6,12,0,0]    {0:6}
 NTSSN     If 0: Jump to Label REACHED_ZERO  [6,12,0]      {0:6}
 NSSSN     Create Label REACHED_ZERO         [6,12,0]      {0:6}
  SNN      Discard top (0)                   [6,12]        {0:6}
  SNS      Duplicate top (12)                [6,12,12]     {0:6}
  STSSTSN  Copy 0-based 2nd (6)              [6,12,12,6]   {0:6}
  TSTT     Modulo top two (12%6)             [6,12,0]      {0:6}
  NTSSSN   If 0: Jump to Label DIVISIBLE     [6,12]        {0:6}
  NSSSSN   Create Label DIVISIBLE            [6,12]        {0:6}
   SNT     Swap top two                      [12,6]        {0:6}
   TSTS    Integer-divide top two (12/6)     [2]           {0:6}
   NSSSTN  Create Label OUTPUT               [2]           {0:6}
    TNST   Output top as integer (2)         []            {0:6}         2
                                                                                 error

परिणाम को प्रिंट करने के बाद एक त्रुटि के साथ रुक जाता है, क्योंकि कोई निकास परिभाषित नहीं है।

4 Mukundan314 Sep 14 2020 at 09:38

अजगर , 15 बाइट्स

&!%Jsf!%QTSQQ/J

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

व्याख्या

&!%Jsf!%QTSQQ/J
   J              # set J to
    s             # sum of
     f    SQ      # filtering the range [1, input] with
      !%QT        # lambda T: not (input % T)    (divisibility test)
                  # implicit print the
&                 # short-circuiting and of
 !%J        Q     # not (J % input)
             /J   # and J / input
3 Arnauld Sep 14 2020 at 04:59

जावास्क्रिप्ट (ईएस 6), 41 बाइट्स

कोई समाधान नहीं है, तो 0 देता है ।

x=>(g=k=>x=k&&k*!(x%k)/x+g(k-1))(x)%1?0:x

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

3 JonathanAllan Sep 14 2020 at 05:22

जेली , 6 बाइट्स

Æs0:%?

एक सकारात्मक लिंक जो एक गैर-नकारात्मक पूर्णांक देता है, एक सकारात्मक लिंक को स्वीकार करता है।

इसे ऑनलाइन आज़माएं! या परीक्षण-सूट देखें ।

कैसे?

Æs0:%? - Link: x
Æs     - divisor sum
     ? - if...
    %  - ...condition: has a remainder when divided
  0    - ...then: zero
    :  - ...else: integeger divide
3 Razetime Sep 14 2020 at 11:22

एपीएल (डायलॉग यूनिकोड) , 19 18 बाइट्स

⊢(÷⍨×0=|)1⊥∘⍸0=⍳|⊢

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

जो राजा द्वारा ट्रेन में रूपांतरण। (- 3 बाइट्स)

चेक की स्थिति बदलने के बाद जो किंग से -1 और बाइट।

पुराना उत्तर, 22 बाइट्स

{(⊢×⌊=⊢)⍵÷⍨+/⍸0=⍵|⍨⍳⍵}

व्याख्या

{(⊢×⌊=⊢)⍵÷⍨+/⍸0=⍵|⍨⍳⍵} ⍵ → input
                   ⍳⍵  range 1-⍵
                ⍵|⍨    mod ⍵
              0=       check which ones are divisors
             ⍸         get the indices (factors)
           +/          sum the factors
        ⍵÷⍨            divide by ⍵
 (⊢×⌊=⊢)               Inner tacit fn:
    ⌊=⊢                Floor equals right? (integer test, returns 0 or 1)
  ⊢×                   times right 
3 ovs Sep 14 2020 at 06:15

हास्केल , 51 46 बाइट्स

a!b=0^mod a b*div a b
f n=sum(map(n!)[1..n])!n

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

3 J42161217 Sep 14 2020 at 06:24

वोल्फ्राम भाषा (गणितज्ञ) , 30 बाइट्स

Tr@Divisors@#/#/._Rational->0&

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

-6 बाइट्स @ से

3 Neil Sep 14 2020 at 05:55

चारकोल , 23 20 बाइट्स

NθI⌕E⊕θ×θιΣΦ⊕θ∧ι¬﹪θι

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। 0-इंडेक्सिंग से निपटने के लिए @ ओवेज़ की टिप्पणी का उपयोग करते हुए @ सेज़ीफ़स के एल्गोरिथ्म का पोर्ट। नोक्सिस्टेंस के -1लिए आउटपुट । स्पष्टीकरण:

Nθ                      Input `x` as a number
             θ          `x`
            ⊕           Incremented
           Φ            Filter over implicit range
               ι        Current index
              ∧         Logical AND
                  θ     `x`
                 ﹪      Modulo
                   ι    Current index
                ¬       Logical NOT
          Σ             Take the sum
      θ                 `x`
     ⊕                  Incremented
    E                   Map over implicit range
        θ               `x`
       ×                Multiplied by
         ι              Current index
   ⌕                    Find the index
  I                     Cast to string
                        Implicitly print

दुर्भाग्य से चारकोल के लिए राशि []शून्य नहीं है, जिसका अर्थ है कि मैं दो वेतन वृद्धि को हटाने xऔर परिणाम को बढ़ाने के बजाय एक बाइट नहीं बचा सकता।

पिछला 23-बाइट समाधान:

Nθ≔ΣΦ⊕θ∧ι¬﹪θιη¿¬﹪ηθI÷ηθ

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

Nθ

इनपुट x।

≔ΣΦ⊕θ∧ι¬﹪θιη

से एक सूची बनाएं 1..x, संख्याओं को फ़िल्टर करें जो विभाजित नहीं करते हैं x, और राशि लेते हैं।

¿¬﹪ηθI÷ηθ

यदि xराशि विभाजित होती है तो भागफल प्रिंट करें।

3 DominicvanEssen Sep 14 2020 at 14:55

आर , 42 41 39 बाइट्स

संपादित करें: -1 बाइट (और, इससे प्रेरित, -2 अधिक बाइट्स) रॉबिन राइडर के लिए धन्यवाद

function(x)(d=sum(1:x*!x%%1:x))/x*!d%%x

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

टिप्पणी की:

perfect_n=
function(x)
 (d=            # d is the divisor sum, calculated as...
  sum(          # sum of...
   1:x*         # the values of 1..x that have...
    !           # zero values for...
     x%%1:x)    # x MOD 1..x
  )
 )/x            # output d/x...
    *!d%%x      # but only if it's an integer 
                # (so d MOD x == 0)
2 user Sep 14 2020 at 05:38

स्काला, 54 53 बाइट्स

x=>{val s=1 to x filter(x%_<1)sum;s/x*(1-(s%x).sign)}

इसे स्कैस्टी में आज़माएं

x1 से x तक के प्रत्येक भाजक को सम्मिलित करता है। यदि वह योग x से विभाज्य है, तो वह x से विभाजित होकर लौटता है, अन्यथा वह 0 देता है।

2 Neil Sep 14 2020 at 06:05

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

.+
*
|""Lw`^(.+)(?=\1*$) ^ $-1;
L$`^(.+);(\1)+$
$#2

इसे ऑनलाइन आज़माएं! लिंक में कम परीक्षण के मामले शामिल हैं। स्पष्टीकरण:

.+
*

इनपुट को unary में बदलें।

|""Lw`^(.+)(?=\1*$)

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

^
$-1;

मूल एकात्मक मान निकालें।

L$`^(.+);(\1)+$ $#2

गणना करें कि यह कितनी बार योग को विभाजित करता है। (या उत्पादन कुछ भी नहीं अगर यह नहीं है।)

2 LuisMendo Sep 14 2020 at 06:33

ऑक्टेव , 36 34 बाइट्स

@(x)~mod(s=~mod(x,r=1:x)*r',x)*s/x

बेनामी फ़ंक्शन जो इनपुट के रूप में एक फ्लोटिंग-पॉइंट या पूर्णांक संख्या लेता है। अंतिम परीक्षण मामला स्मृति सीमाओं के कारण विफल हो जाता है।

इसे ऑनलाइन आज़माएं! या परीक्षण मामलों की पुष्टि करें ।

व्याख्या

@(x)~mod(s=~mod(x,r=1:x)*r',x)*s/x

@(x)                                 % anonymous function with input x
                    1:x              % row vector [1 2 ... x]
                  r=                 % call that r
            mod(x,     )             % x modulo [1 2 ... x]. Gives a row vector
           ~                         % negate each element. Gives 1 for divisors
                         r'          % column vector [1; 2; ... ; x]
                        *            % matrix-multiply. Gives the sum of divisors
         s=                          % call that s
     mod(                  ,x)       % sum of divisors modulo x
    ~                                % negate. Gives 1 if x divides sum of divisors
                               s/x   % sum of divisors divided by x
                              *      % multiply
2 Mukundan314 Sep 14 2020 at 12:10

पायथन 3.8 (पूर्व-रिलीज़) , 62 बाइट्स

lambda x:(a:=sum(x/i*(x%i<1)for i in range(1,x+1)))%x<1and a/x

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

2 KevinCruijssen Sep 14 2020 at 17:29

मठगोल्फ , 7 बाइट्स

─Σk‼÷/*

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

स्पष्टीकरण:

─       # Get the divisors of the (implicit) input-integer
 Σ      # Sum those divisors
  k     # Push the input-integer again
   ‼    # Apply the following two commands separately to the stack:
    ÷   #  Check if the divisor-sum is divisible by the input (1 if truthy; 0 if falsey)
    /   #  Integer-divide the divisor-sum by the input
     *  # Multiply the two together
        # (after which the entire stack joined together is output implicitly as result)
2 Shaggy Sep 14 2020 at 18:22

रॉकस्टार , 141 135 131 बाइट्स

यदि कोई nमौजूद नहीं है तो कुछ भी नहीं ।

listen to N
X's0
T's0
while N-X
let X be+1
let D be N/X
turn up D
let T be+D is N/X and X

let D be T/N
turn up D
if D is T/N
say D

इसे यहां आज़माएं (कोड को पेस्ट करना होगा)

1 GalenIvanov Sep 14 2020 at 13:51

आइकन , 67 बाइट्स

procedure f(n)
s:=0
n%(i:=1to n)=0&s+:=i&\z
return(0=s%n&s/n)|0
end

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

1 Shaggy Sep 14 2020 at 14:00

जाप -æ , 7 बाइट्स

undefinedनहीं nमिला तो आउटपुट ।

*N¶Îâ x

कोशिश करो

1 GalenIvanov Sep 14 2020 at 14:17

फैक्टर , 84 बाइट्स

: f ( n -- n ) dup [1,b] [ dupd mod 0 = ] filter sum swap /mod 0 > [ drop 0 ] when ;

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

1 user Sep 15 2020 at 02:19

प्रोलॉग, 117 बाइट्स

s(X,D,S):-D<1,!,S is 0;E is D-1,(0 is X mod D,!,s(X,E,T),S is T+D;s(X,E,S)).
f(X,N):-s(X,X,S),0 is S mod X,N is S//X.

इसे ऑनलाइन आज़माएं! (कृपया इसे सीधे संशोधित न करें, यह मेरा संस्करण भी बदल देगा)


अगर कोई यह पता लगा सकता है कि यह छोटा संस्करण (96 बाइट्स) काम क्यों नहीं कर रहा है, तो मैं वास्तव में आभारी रहूंगा।

s(X,D,S):-D<1,!,S is 0;E is D-1,(0 is X mod D,!,s(X,E,T),S is T+D;s(X,E,S)).
f(X,N):-s(X,X,N*X).

संस्करण प्रिंट डिबगिंग के साथ

1 2014MELO03 Sep 17 2020 at 02:48

गोल्फस्क्रिप्ट , 22 बाइट्स

~:x),{.x\%!*+}*.x%!*x/

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

~:x                     # Store the input in x
   ),                   # Make an array from 0 to x
     {       }*         # For each number in the array, execute this block
      .                 # Copy current number
       x\%!             # The copy becomes 1 if it is a divisor of x and 0 if it isn't
           *+           # Multiply and add
               .        # Copy the sum of the divisors
                x%!     # The copy becomes 1 if it is a divisor of x and 0 if it isn't
                   *    # Multiply
                    x/  # Divide by x