Nth हारून नंबर का पता लगाएं


14

पृष्ठभूमि

एक रूथ-आरोन जोड़ी लगातार सकारात्मक पूर्णांक की एक जोड़ी है nऔर n+1इस तरह कि प्रत्येक पूर्णांक के प्रमुख कारकों (बार-बार प्रमुख कारकों की गिनती) का योग समान है। उदाहरण के लिए, (714,715)एक रूथ-हारून जोड़ी है के बाद से 714=2*3*7*17, 715=5*11*13और 2+3+7+17=5+11+13=29। रूथ-आरोन की जोड़ी को कार्ल पोमेरेन्स ने बेबे रुथ के करियर होम रन के संदर्भ में चुना था 714, जो 25 मई, 1935 से 8 अप्रैल, 1974 तक विश्व रिकॉर्ड के रूप में रहा, जब हांक आरोन ने अपने 715घरेलू घर को हिट किया । आप इस नंबरफाइल वीडियो में इन नंबरों के आकर्षक इतिहास के बारे में अधिक जान सकते हैं ।

लक्ष्य

एक पूर्ण प्रोग्राम या फ़ंक्शन लिखें, जो एक सकारात्मक पूर्णांक दिया गया है n, nवें आर हारून संख्या को आउटपुट करता है , जहां nवें नंबर को nवें रुथ-आरोन जोड़ी के बड़े पूर्णांक के रूप में परिभाषित किया गया है । इस प्रकार nवें हारून संख्या है a(n)+1, जहां a(n)है nOEIS अनुक्रम में वें अवधि A039752

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

पहले कुछ हारून नंबर हैं

6,9,16,78,126,715,949,1331,1521,1863,2492,3249,4186,4192,5406,5561,5960,6868,8281,8464,10648,12352,14588,16933,17081,18491,20451,24896,26643,26650,28449,28810,33020,37829,37882,41262,42625,43216

नियम


यह सुनिश्चित करने के लिए, "गिनती गुणा" का अर्थ है कि 20 -> 2, 2, 5 नहीं 2, 5 सही?
हाइपरनेत्रिनो

@ ओकेक्स मैं था, मैंने अभी देखा कि जब मैंने उसकी Youtube प्रोफ़ाइल को रीफ्रेश किया, तो उसके पास ठीक 1 और सब्सक्राइबर था (मेरे नहीं)
मिस्टर एक्सकोडर

@ हाइपरनेट्रिनो हाँ। मैं और अधिक स्पष्ट करने के लिए संपादन करूँगा।
नेगनिसिस

क्या हम 0 और 1 अनुक्रमण के बीच चयन कर सकते हैं?
श्री एक्सकोडर

3
मैंने भी, आज का नंबरफाइल वीडियो देखा
shooqie

जवाबों:


7

05AB1E , 11 10 9 बाइट्स

-1 बाइट थैंक्स टू एमीग्ना
-1 बाइट थैंक्स टू अदनान

µN>Ð<‚ÒOË

स्पष्टीकरण:

µ            While the counter variable (which starts at 0) is not equal to the input:
 N>          Store the current iteration index + 1, and then create an array with
   Ð<‚       [current iteration index + 1, current iteration index]
      ÒO     Get the sum of the prime factors of each element
        Ë    If all elements in the array are equal,
             implicitly increment the counter variable

1 अनुक्रमित।

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


1
स्पष्टीकरण जब आप कर सकते हैं, तो कृपया :)
श्री एक्सकोडर

@ Mr.Xcoder जोड़ा गया।
ओकेक्स

10 बाइट्स:µN>Ð<‚ÒO˽
Emigna

@Eigna आह, अच्छा एक।
ओकेक्स

2
@ अदनान वाकई? यह एक पागल भाषा की सुविधा है।
18

5

भूसी , 11 9 बाइट्स

-2 बाइट्स @Leo के एक चतुर गोल्फ के लिए धन्यवाद

€∫Ẋ¤=oΣpN

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

व्याख्या

  Ẋ     N   -- map function over all consecutive pairs ... of natural numbers           [(1,2),(2,3),(3,4),(4,5)...]
   ¤=       --   are the results of the following function equal for both in the pair?
     oΣp    --     sum of prime factors                                                   [0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0]
 ∫          -- cumulative sum                                                           [0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3]                
€           -- the index of the first value equal to the input

1
अच्छा काम, मैं काफी हद तक एक ही विचार पोस्ट करने वाला था :)
लियो

2
एक गोल्फर संस्करण tio.run/##ARsA5P9odXNr///igqziiKvhuorCpD1vzqNwTv///zY
Leo

1
@ लिओ ऊह, €∫एक बहुत अच्छी चाल है! और वह जो केवल आलसी भाषा में काम करता है। ;)
ज़गर्ब

@ बहुत चालाक।
एच। वाइज

3

पायथ , 23 20 बाइट्स

यह 1-अनुक्रमित है।

WhQ=-QqsPZsPhZ=+Z1;Z

टेस्ट सूट या ऑनलाइन यह कोशिश करो!


व्याख्या

WhQ = -QqsPZsPhZ = + Z1; Z - पूर्ण कार्यक्रम। मानक इनपुट से इनपुट लेता है।

WhQ - जबकि Q 0 से अधिक है।
       sPZ - Z के प्रमुख कारकों में से योग।
          sPhZ - Z + 1 के प्रमुख कारकों का योग।
      q - यदि उपरोक्त बराबर हैं:
   = -Q - यदि वे समान नहीं हैं, तो 1 से घटाव Q, और 0 से अगर वे नहीं हैं।
              = + जेड 1; - प्रत्येक पुनरावृत्ति पर वृद्धि Z।
                   जेड - आउटपुट जेड। 

3

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

;‘ÆfS€Eµ⁸#Ṫ‘

गैर-ऋणात्मक संख्याओं को लेने और वापस करने वाला एक विचित्र लिंक

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

कैसे?

;‘ÆfS€Eµ⁸#Ṫ‘ - Link: number, n
         #   - n-find (counting up, say with i, from implicit 1)
        ⁸    - ...number of matches to find: chain's left argument, n
       µ     - ...action: the monadic chain with argument i:
 ‘           -   increment = i+1
;            -   concatenate = [i,i+1]
  Æf         -   prime factors (with duplicates, vectorises)
    S€       -   sum €ach
      E      -   all (two of them) equal?
          Ṫ  - tail, the last matching (hence nth) i
           ‘ - increment (need to return i+1)

एक बाइट के साथ सहेजें ;’ÆfS€E_Ịµ#
आउटगॉल्फ

अभी भी पूंछ की जरूरत है।
जोनाथन एलन

1
और यही आपको परीक्षण के लिए मिलता है 1
आउटगॉल्फ

3

PHP, 93 92 91 + 1 बाइट्स

while(2+$argn-=$a==$b)for($b=$a,$a=!$x=$n+=$k=1;$k++<$x;)for(;$x%$k<1;$x/=$k)$a+=$k;echo$n;

ऑनलाइन के साथ पाइप के रूप में चलाएं -nRया इसे आज़माएं

3-अनुक्रमित (तर्क के लिए मुट्ठी हारून नंबर 3) के साथ -2 बाइट्स : निकालें 2+

टूट - फूट

while(2+$argn       # loop until argument reaches -2 (0 and 1 are false positives)
    -=$a==$b)           # 0. if factors sum equals previous, decrement argument
    for($b=$a,          # 1. remember factors sum
        $a=!            # 3. reset factors sum $a
        $x=$n+=         # 2. pre-increment $n and copy to $x
        $k=1;$k++<$x;)  # 4. loop $k from 2 to $x
        for(;$x%$k<1;       # while $k divides $x
            $x/=$k)             # 2. and divide $x by $k
            $a+=$k;             # 1. add $k to factors sum
echo$n;             # print Aaron number $n

3

MATL , 17 बाइट्स

`@:"@Yfs]vd~sG<}@

1 के आधार पर। बहुत धीमी गति से।

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

व्याख्या

`        % Do...while
  @      %   Push iteration index k, starting at 1
  :      %   Range [1 2 ... k]
  "      %   For each j in [1 2 ... k]
    @    %     Push j
    Yf   %     Row vector of prime factors
    s    %     Sum
  ]      %   End
  v      %   Concatenate whole stack into a column vector
  d      %   Consecutive differences. A zero indicates a Ruth-Aaron pair
  ~s     %   Number of zeros
  G<     %   Is it less than the input? If so: next k. Else: exit loop
}        % Finally (execute right before when the loop is exited)
  @      %   Push current k
         % Implicit end. Implicit display

3

मैथेमेटिका, 97 बाइट्स

(t=r=1;While[t<=#,If[SameQ@@(Plus@@((#&@@# #[[2]])&/@FactorInteger@#)&/@{#,#+1}&@r),t++];r++];r)&


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


यह विवरण के अनुसार जोड़ी के बड़े उत्पादन के लिए आवश्यक है; उदाहरण के लिए, इसके बजाय 6रिटर्न । 714715
नंबरमानिश number ’

1
@numbermaniac तय! 2 बाइट्स बचाए!
J42161217

2

पायथ, 12 11 बाइट्स

e.fqsPtZsPZ

1 से अनुक्रमण एक बाइट को हटाता है, और पेली को जेली से आगे रखता है


व्याख्या

e.fqsPtZsPZ - पूर्ण कार्यक्रम। मानक इनपुट से इनपुट लेता है।

एफई - पहले $ इनपुट नंबरों की सूची का अंतिम तत्व जिसके लिए
   q - बराबर हैं 
    ss - का योग
     PtZ PZ - $ नंबर -1 और $ संख्या के प्रमुख कारक


1

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

ÆfS=’ÆfS$$µ³‘¤#ṖṪ

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

व्याख्या

ÆfS=’ÆfS$$µ³‘¤#ṖṪ  Main link, argument is z
              #    Find the first       elements that satisfy condition y: <y><z>#
           ³‘¤                    z + 1
          µ        Monadic link, where the condition is:
  S                The sum of
Æf                            the array of primes that multiply to the number
   =               equals
       S           The sum of
     Æf                       the prime factors of
    ’                                              the number before it
        $$         Last two links as a monad, twice
               Ṗ   k -> k[:-1]
                Ṫ  Last element (combined with `pop`, gets the second last element)

1 अनुक्रमित


1
मुझे यकीन नहीं है कि डिफ़ॉल्ट नियमों द्वारा 2-अनुक्रमण की अनुमति है।
श्री एक्सकोडर

@ Mr.Xcoder निश्चित, निश्चित।



0

पायथन 2 , 119 104 102 101 बाइट्स

f=lambda n,k=2:n/k and(f(n,k+1),k+f(n/k))[n%k<1]
i=input();g=0
while-~i:i-=f(g)==f(g+1);g+=1
print(g)

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

-17 बाइट्स थैंक्स टू @ovs!

-1 बाइट @ नॉटजगन को धन्यवाद

प्राइम फेक्टराइजेशन एल्गोरिदम के लिए डेनिस को श्रेय जाता है । 1 अनुक्रमित।


नोट: यह अत्यंत धीमा और अक्षम है। जब तक आप सेट नहीं करते import sysऔर करते हैं sys.setrecursionlimit(100000), तो 7 से अधिक इनपुट क्रैश होंगे , लेकिन यह सिद्धांत रूप में काम करता है।


104 बाइट्स बनाकर fएक समारोह अभाज्य गुणकों की राशि की गणना
OVS

बहुत अच्छा होगा यदि आप अपने बायटेकाउंट को ट्रैक करेंगे (और शायद आपके संपादन पर टिप्पणी करें)।
टाइटस

(f(n,k+1),k+f(n/k))[n%k<1]एक और -2 बाइट्स के लिए। इससे यह और भी धीमा हो जाता है।
20

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