संख्या x ऐसी है कि x ^ 2, 7 ^ x-1 को विभाजित करती है


16

कार्य

संख्याओं का एक सेट है x, जैसे कि x^2विभाजित करता है 7^x-1

आपका काम इन नंबरों को खोजना है। N के इनपुट को देखते हुए, कोड इस नियम का पालन करने वाले nth नंबर को प्रिंट करेगा।

उदाहरण 1-सूचकांक

In   Out
3    3
9    24
31   1140

प्रासंगिक अनुक्रम यहां पाया जा सकता है

नियम

सबसे छोटा जवाब होगा विजेता *

मानक गोल्फिंग नियम लागू होते हैं

लूपोल्स की अनुमति नहीं है

आपका उत्तर या तो 0 या 1 अनुक्रमित हो सकता है, कृपया अपने उत्तर में बताएं


@ निम्मी ने योजना बनाते समय इन्हें लिखा था और कभी इन्हें लागू नहीं किया। मैंने प्रश्न को अपडेट किया है
जार्ज

की सीमाएँ क्या हैं n? मैं के साथ सही परिणाम दे सकते हैं n=9, लेकिन n=10पहले से ही मुझे समस्याओं के कारण किया गया है।
रिश्वतवादी

@briantist यदि आपको उच्च इनपुट मानों के लिए गलत परिणाम मिल रहा है, तो आपका उत्तर गलत है। यदि यह सिर्फ लंबा समय ले रहा है, तो यह कार्यान्वयन पर निर्भर हो सकता है।
mbomb007

यह सिर्फ एक लंबा समय नहीं है। n=10मुझे 32 देता है; यह इसलिए है क्योंकि यह पूर्णांक के बजाय दोहरे का उपयोग करना शुरू कर देता है और इसके बाद मॉड गलत है। :(
रिश्वतवादी

जवाबों:


8

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

([x|x<-[1..],mod(7^x-1)(x^2)<1]!!)

यह 0-आधारित इंडेक्सिंग का उपयोग करता है। प्रयोग उदाहरण: ([x|x<-[1..],mod(7^x-1)(x^2)<1]!!) 30-> 1140

यह परिभाषा का सीधा कार्यान्वयन है। यह सभी नंबरों की एक सूची बनाता है xऔर nवें को चुनता है ।


5

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

e.f!%t^7Z*

एक प्रोग्राम जो एक पूर्णांक का इनपुट लेता है और एक-अनुक्रमित मूल्य को प्रिंट करता है।

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

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

e.f!%t^7Z*     Program. Input: Q
e.f!%t^7Z*ZZQ  Implicit variable fill
               Implicitly print
e              the last
 .f         Q  of the first Q positive integers Z
     t^7Z      for which 7^Z - 1
    %          mod
         *ZZ   Z^2
   !           is zero

5

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

f=(n,i=1)=>n?f(n-!((7**++i-1)%i**2),i):i

यह इस तथ्य के कारण सटीकता खो देता है कि जेएस द्वारा परिशुद्धता खो देता है 7**19। यहाँ लगभग मनमाना-सटीक ES6 संस्करण है:

f=(n,i=0)=>n?f(n-!(~-(s=++i*i,g=j=>j?g(j-1)*7%s:1)(i)%s),i):i

यह परीक्षण केस 31 के लिए लगभग एक सेकंड के भीतर समाप्त होता है।

कुछ लंबा दृष्टिकोण:

f=(n,i=0)=>n?f(n-!(~-(s=>g=j=>j?g(j-1)*7%s:1)(++i*i)(i)%s),i):i
f=(n,i=0)=>n?f(n-!(s=++i*i,g=(j,n=1)=>j?g(j-1,n*7%s):~-n%s)(i),i):i
f=(n,i=0)=>n?f(n-!(s=>g=(j,n=1)=>j?g(j-1,n*7%s):~-n%s)(++i*i)(i),i):i

4

05AB1E , 11 बाइट्स

µ7Nm<NnÖiN¼

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

किसी कारण से मुझे ½काम नहीं मिल µ7Nm<NnÖ½Nरहा है या मैं पायथ के साथ बंध गया हूँ।

µ           # Loop until the counter equals n.
 7Nm<       # Calc 7^x+1.
     Nn     # Calc x^2.
       Ö    # Check divisibility.
        iN¼ # If divisible, push current x and increment counter.
            # Implicit loop end.
            # Implicitly return top of stack (x)


हाँ, मैं Öमहीनों के लिए मेरी फिक्स सूची में उस क्वर्की के साथ था, लेकिन मैं इससे निपटने के लिए कभी नहीं मिला। वैसे भी, आप की जरूरत नहीं है के Nरूप में µस्वचालित रूप से पिछले आउटपुट Nअगर स्टैक खाली है।
एमिग्ना

4

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

-2 बाइट्स के लिए @ डेनिस को धन्यवाद!

f=lambda n,i=1:n and-~f(n-(~-7**i%i**2<1),i+1)

एक-अनुक्रमित पुनरावर्ती फ़ंक्शन जो तर्क के माध्यम से इनपुट लेता है और परिणाम देता है।

इसे ऑनलाइन आज़माएं! (अंतिम परीक्षण मामले को चलाने की अनुमति देने के लिए पुनरावृत्ति सीमा बढ़ गई)

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

nवांछित सूचकांक है, और iगिनती चर है।

यदि विभाजित होता है , तो अभिव्यक्ति ~-7**i%i**2<1वापस True(बराबर 1) और अन्यथा (बराबर )। हर बार जब फ़ंक्शन को बुलाया जाता है, तो अभिव्यक्ति के परिणाम को घटाया जाता है , हर बार एक हिट पाए जाने पर घटाया जाता है; बढ़ा हुआ भी है।i^27^i - 1False0nni

शॉर्ट-सर्किटिंग व्यवहार का andमतलब है कि जब nहै 0, 0वापस आ गया है; यह आधार मामला है। एक बार जब यह पहुंच जाता है, तो पुनरावृत्ति रुक ​​जाती है, और iमूल फ़ंक्शन कॉल द्वारा वर्तमान मूल्य वापस कर दिया जाता है। स्पष्ट रूप से उपयोग करने के बजाय i, यह इस तथ्य का उपयोग करके किया जाता है कि प्रत्येक फ़ंक्शन कॉल के लिए, कॉल के -~सामने का उपयोग करके एक वेतन वृद्धि की गई है ; आवश्यकता के अनुसार वेतन वृद्धि 0 iसमय देता है i


1
(~-7**i%i**2<1)बाइट्स के एक जोड़े को बचाता है।
डेनिस

@ बेशक! धन्यवाद।
बाइकिंगवीकिंग

3

पायथन 2 , 57 53 51 बाइट्स

-4 बाइट्स ETHproductions
के लिए धन्यवाद -2 बाइट्स टूयुकएक्स के लिए धन्यवाद

i=0
g=input()
while g:i+=1;g-=~-7**i%i**2<1
print i

इसे ऑनलाइन आज़माएं!
अनुक्रम 1-अनुक्रमित है


@ETHproductions yep c:
Rod

यदि आप कोष्ठकों को चारों ओर से हटाते हैं तो क्या कोई टेस्टकेस विफल होता है (7**i)? मैंने उन्हें हटा दिया और यह उन लोगों के लिए काम कर रहा था जिन्हें मैंने कोशिश की थी।
यति

@TuukkaX वास्तव में, **की तुलना में एक उच्च मिसाल है ~और-
रॉड

2

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

यह बड़े मूल्यों के लिए वास्तव में लंबा समय लेता है । यह मेमोरी का भरपूर उपयोग भी करता है, क्योंकि यह पूरी सूची को आवश्यक रूप से आगे बढ़ाता है। परिणाम शून्य-अनुक्रमित है।

lambda n:[x for x in range(1,2**n+1)if(7**x-1)%x**2<1][n]

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


जिज्ञासा से बाहर, क्या 2**n+1ऊपरी सीमा के लिए कोई प्रमाण है?
रॉड

@Rod नहीं है कि मुझे पता है, लेकिन यह देखते हुए कि 50 मान <5000 हैं, मुझे यकीन है कि 50 <से बहुत अधिक है 2**50। मैं उपयोग कर सकता था 9**n+9, लेकिन इसमें बहुत अधिक समय लगता है। मैंने f(20)थोड़ी देर पहले (साथ 2**n+1) दौड़ना शुरू किया ; यह अभी भी पूरा नहीं हुआ है।
mbomb007

मुझे नहीं लगता कि कोई सबूत है कि अनुक्रम अनंत है, अकेले ही nth शब्द के लिए एक अच्छा ऊपरी बाध्य है!
ग्रेग मार्टिन

2

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

मुझे वर्तमान में इस बाइट गणना में तीन अलग-अलग समाधान मिले हैं:

Nest[#+1//.x_/;!(x^2∣(7^x-1)):>x+1&,0,#]&
Nest[#+1//.x_/;Mod[7^x-1,x^2]>0:>x+1&,0,#]&
Nest[#+1//.x_:>x+Sign@Mod[7^x-1,x^2]&,0,#]&

पहली पंक्ति में x ^ 2 और (7 ^ x ... के बीच का वर्ण क्या है? यह एक पाइप जैसा दिखता है, लेकिन छोटा होता है
Sefa

@ सिफा यह गणितीय "डिवाइड्स" सिंबल के लिए यूनिकोड का चरित्र है और इसका इस्तेमाल मैथमेटिका द्वारा एक ऑपरेटर के रूप में किया जाता है Divisible
मार्टिन एंडर

यहाँ 41 बाइट्स में से एक है: Cases[Range[#^3],x_/;x^2∣(7^x-1)][[#]]&अनुमानी तर्क पर आधारित है कि n ^ 3 एक ऊपरी बाध्य है। मैंने इसका एक बहुत ही अद्भुत प्रमाण खोज लिया है, जो इस मार्जिन को सम्‍मिलित करने के लिए बहुत ही संकरा है :)
केली लोदर

2

PARI / GP , 42 बाइट्स

बहुत सीधा। 1-अनुक्रमित, हालांकि यह आसानी से बदला जा सकता है।

n->=k=1;while(n--,while((7^k++-1)%k^2,));k

या

n->=k=1;for(i=2,n,while((7^k++-1)%k^2,));k

1

पायथन 3 , 45 बाइट्स

f=lambda n,k=2:n<2or-~f(n-(7**k%k**2==1),k+1)

इनपुट 1 के लिए सही पर लौटें , जिसकी अनुमति डिफ़ॉल्ट रूप से है

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


मैं इस समय इसका परीक्षण नहीं कर सकता, लेकिन मुझे लगता है कि यह अन्य आदानों के लिए एक मूल्य देता है? एक बूल के बजाय?
जार्ज

1

आर, 35 बाइट्स

यह केवल के लिए काम करता है n<=8

z=1:20;which(!(7^z-1)%%z^2)[scan()]

हालांकि, यहां एक लंबा संस्करण है जो 50 बाइट्स केn<=25 लिए काम करता है :

z=1:1e6;which(gmp::as.bigz(7^z-1)%%z^2==0)[scan()]

क्या यह केवल 8इसलिए काम करता है क्योंकि यह एक लंबा इंट बन जाता है?
जार्ज

1
@george हाँ, आप 32 बिट पूर्णांकों के लिए आर डिफॉल्ट के रूप में सटीकता खो देते हैं। कोड का दूसरा संस्करण एक पैकेज का उपयोग करता है gmp, जो मनमाने ढंग से बड़े पूर्णांक की अनुमति देता है। हालाँकि, मैं उपर्युक्त किसी भी चीज़ की गणना के लिए तेजी से रैम से बाहर चला जाता हूं n=25
rturnbull

0

PHP, 47 49 बाइट्स

while($n<$argv[1])$n+=(7**++$x-1)%$x**2<1;echo$x;

केवल n <9 के लिए काम करता है ( 64 बिट के साथ की 7**9तुलना में बड़ा है PHP_INT_MAX)

62 बाइट्स का उपयोग करते हुए मनमाने ढंग से लंबाई पूर्णांक: (परीक्षण नहीं किया गया; मेरी मशीन पर PHP में bcmath नहीं है)

for($x=$n=1;$n<$argv[1];)$n+=bcpowmod(7,++$x,$x**2)==1;echo$x;

साथ चलाना php -nr '<code>' <n>

छद्म कोड

implicit: $x = 0, $n = 0
while $n < first command line argument
    increment $x
    if equation is satisfied
        increment $n
print $x


0

क्लोजर , 83 बाइट्स

(fn[n](nth(filter #(= 0(rem(-(reduce *(repeat % 7N))1)(* % %)))(iterate inc 1N))n))

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

यह 1 पर शुरू होने वाले जावा बिगइन्टर्स की एक अनंत सूची बनाता है और परिभाषा द्वारा उन्हें फ़िल्टर करता है। यह फ़िल्टर किए गए सूची से n वें मान का चयन करने के लिए शून्य-आधारित अनुक्रमण का उपयोग करता है ।


0

पर्ल 5, 35 बाइट्स

खैर, यह याद आ रही थी, इसलिए यहाँ यह है:

map{$_ if!((7**$_-1)%($_**2))}1..<>


0

पॉवर्सशेल, बहुत सारे बाइट्स

बस यह देखने के लिए कि क्या यह संभव था और यह है।

[System.Linq.Enumerable]::Range(1,10000)|?{[System.Numerics.BigInteger]::Remainder([System.Numerics.BigInteger]::Pow(7,$_)-1,$_*$_) -eq 0}

0

पर्ल 6 , 35 34 बाइट्स

{grep({(7**$_-1)%%$_²},^∞)[$_]}

0 अनुक्रमित।

ब्रैड गिल्बर्ट के लिए एक बाइट धन्यवाद के साथ मुंडा।


grep एक सबरूटीन है इसलिए आप अंतरिक्ष को हटा सकते हैं यदि आप इसके बाद {grep(…)}
परन्स लगाते हैं

0

QBIC , 39 बाइट्स

:{~(7^q-1)%(q^2)=0|b=b+1]~b=a|_Xq\q=q+1

मैं QBasic 4.5 में चलाने के लिए इसे प्राप्त नहीं कर सका, लेकिन यह QB64 में ठीक चलने लगता है। कुछ अकथनीय कारणों के लिए, QBasic ने 13,841,287,200 को 144 से साफ़ करने के लिए मना कर दिया, लेकिन इसके बदले -128 शेष है। यह तो 12 के बजाय इस क्रम के 7 वें कार्यकाल के रूप में 16 रिटर्न ...

:{      get N from the command line, start an infinite DO-loop
~       IF
(7^q-1) Part 1 of the formula (Note that 'q' is set to 1 as QBIC starts)
%       Modulus
(q^2)   The second part
=0      has no remainder
|b=b+1  Then, register a 'hit'
]       END IF
~b=a    If we have scored N hits
|_Xq    Quit, printing the last used number (q)
\q=q+1  Else, increase q by 1. 
        [DO-loop and last IF are implicitly closed by QBIC]

0

वंडर , 28 बाइट्स

@:^#0(!>@! % - ^7#0 1^#0 2)N

शून्य अनुक्रमित। उपयोग:

(@:^#0(!>@! % - ^7#0 1^#0 2)N)2

एक विधेय के साथ प्राकृतिक संख्याओं की सूची से फ़िल्टर जो निर्धारित करता x^2है कि क्या विभाज्य है 7^x-1, फिर उस सूची में nth आइटम मिलता है।


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