प्रधान संशोधित जेड-फैक्टिरियल
मुझे उपरोक्त शर्तों के अनुसार एक एक करके समझाएं ...
हम फोन करेगा \$\text{Z-Factorial}(n)\$एक सकारात्मक पूर्णांक के \$n\$, \ _$n!\$(यानी \$n\$भाज्य) बिना किसी अनुगामी शून्य के। तो, \ _$\text{Z-Factorial}(30)\$है \$26525285981219105863630848\$क्योंकि \ _$30!=265252859812191058636308480000000\$
हम कहेंगे Modified Z-Factorial
की \$n\$, द \ _$\text{Z-Factorial}(n) \mod n\$।
तो, Modified Z-Factorial
के \$30\$, है \$\text{Z-Factorial}(30) \mod 30\$जो है \$26525285981219105863630848 \mod 30 = 18\$
हम उन में रुचि रखने वाले कर रहे हैं \$n\$जिसके लिए Modified Z-Factorial of n
एक अभाज्य संख्या है
उदाहरण
संख्या \$545\$है PMZ क्योंकि \$\text{Z-Factorial}(545) \mod 545 = 109\$ जो प्रधान है
यहाँ पहले मूल्यों की एक सूची है \$n\$ वह उपज Prime Modified Z-Factorial (PMZ)
5,15,35,85,545,755,815,1135,1165,1355,1535,1585,1745,1895,1985,2005,2195,2495,2525,2545,2615,2705,2825,2855,3035,3085,3155,3205,3265,3545,3595,3695,3985,4135,4315,4385,4415,4685,4705,4985,5105,5465,5965,6085,6155,6185,6385,6415,6595...
टास्क
उपर्युक्त सूची आगे बढ़ती है और आपका कार्य \ _ खोजना है$k\$वें पीएमजेड
इनपुट
एक सकारात्मक पूर्णांक \$k\$
उत्पादन
द \ _$kth\$ पीएमजेड
परीक्षण के मामलों
यहाँ कुछ 1-अनुक्रमित परीक्षण मामले हैं।
कृपया बताएं कि भ्रम से बचने के लिए आप किस अनुक्रमण प्रणाली का उपयोग अपने उत्तर में करते हैं।
आपके समाधान को केवल आपकी भाषा के मूल पूर्णांक आकार की सीमा में काम करने की आवश्यकता है।
input -> output
1 5
10 1355
21 2615
42 5465
55 7265
100 15935
500 84815
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे कम स्कोर जीतता है।
जवाब
05AB1E , 16 बाइट्स
[N!0ÜN%pi®>©¹Q#N
इनपुट है 1 के आधार पर कश्मीर।
के -पीएमजेड को आउटपुट करता है।
स्पष्टीकरण:
[N!0ÜN%pi®>©¹Q#N
[ Start infinite loop
N! Factorial of the index
0Ü Remove trailing zeros
N% Mod index
p Is prime?
i If it is:
®>© Increment the value stored in register c (initially -1)
¹Q Is the value equals the input?
#N If it does, push the index (which is the PMZ) and break
इसे ऑनलाइन आज़माएं!
जेली , 13 11 बाइट्स
!Dt0Ḍ%⁸Ẓµ#Ṫ
एसटीडीआईएन से एक पूरा कार्यक्रम जो STDOUT के परिणाम को प्रिंट करता है।
इसे ऑनलाइन आज़माएं!
कैसे?
!Dt0Ḍ%⁸Ẓµ#Ṫ - Main Link: no arguments
# - set n=0 (implicit left arg) and increment getting the first
(implicit input) values of n which are truthy under:
µ - the monadic chain (f(n)):
! - factorial -> n!
D - convert from integer to decimal digits
t0 - trim zeros
Ḍ - convert from decimal digits to integer
⁸ - chain's left argument, n
% - modulo
Ẓ - is prime?
Ṫ - tail
- implicit print
++ , 58 बाइट्स जोड़ें
D,f,@,Rb*BDBGbUdb*!!*BFJiA%P
x:?
Wx,`y,+1,`z,$f>y,`x,-z
Oy
इसे ऑनलाइन आज़माएं!
TIO पर $ बहिष्कार के लिए टाइम्स $ \ _ \ _ 30 जी $
यह काम किस प्रकार करता है
D,f,@, ; Define a function, f, taking 1 argument, n
; Example: STACK = [30]
Rb* ; Factorial STACK = [265252859812191058636308480000000]
BD ; Convert to digits STACK = [2 6 5 ... 0 0 0]
BGbU ; Group adjacents STACK = [[2] [6] [5] ... [8] [4] [8] [0 0 0 0 0 0 0]]
db*!! ; If last is all 0s
*BF ; remove it STACK = [[2] [6] [5] ... [8] [4] [8]]
Ji ; Join to make integer STACK = [26525285981219105863630848]
A% ; Mod n STACK = [18]
P ; Is prime? STACK = [0]
; Return top value 0
x:? ; Set x to the input
Wx, ; While x > 0
`y,+1, ; y = y + 1
`z,$f>y, ; z = f(y)
`x,-z ; x = x - z
; We count up with y
; If y is PMZ, set z to 1 else 0
; Subtract z from x, to get x PMZs
Oy ; Output y
जाप , 13 बाइट्स
0-अनुक्रमित। केवल काम करता है, व्यवहार में, के लिए 0
और 1
एक बार के रूप में हम पर जाने के 21!
हम जावास्क्रिप्ट के से अधिक MAX_SAFE_INTEGER
।
ÈÊsÔsÔuX j}iU
कोशिश करो
ÈÊsÔsÔuX j}iU :Implicit input of integer U
È :Function taking an integer X as argument
Ê : Factorial
s : String representation
Ô : Reverse
sÔ : Repeat (There has to be a shorter way to remove the trailing 0s!)
uX : Modulo X
j : Is prime?
} :End function
iU :Pass all integers through that function, returning the Uth one that returns true
आर , 99 93 बाइट्स
संपादित करें: -6 बाइट्स (और मनमाने ढंग से सटीक संस्करण से -4 बाइट्स) Giuseppe के लिए धन्यवाद
k=scan();while(k){F=F+1;z=gamma(F+1);while(!z%%5)z=z/10;x=z%%F;k=k-(x==2|all(x%%(2:x^.5)))};F
इसे ऑनलाइन आज़माएं!
स्पष्टीकरण के चरणों का पालन करते हुए, सीधे दृष्टिकोण का उपयोग करता है। दुर्भाग्य से गुटबाजी (21) पर R की संख्यात्मक सटीकता की सीमा से बाहर हो जाता है , इसलिए किसी भी k> 2 के लिए विफल रहता है।
एक मनमाना-सटीक संस्करण (जो छोटे k तक सीमित नहीं है, लेकिन कम गोल्फ-प्रतिस्पर्धी है):
R + gmp, 115 बाइट्स
भूसी , 11 बाइट्स
!foṗS%ȯ↔↔ΠN
इसे ऑनलाइन आज़माएं!
व्याख्या
!foṗS%ȯ↔↔ΠN
f N filter list of natural numbers by:
Π take factorial
↔↔ reverse twice, remove trailing zeros
S% mod itself
ṗ is prime?
! get element at index n
जावास्क्रिप्ट (Node.js) , 89 ... 79 77 बाइट्स
n=>(g=y=>y%10n?(p=k=>y%--k?p(k):~-k||--n?g(x*=++i):i)(y%=i):g(y/10n))(x=i=2n)
इसे ऑनलाइन आज़माएं!
पायथन 3 , 145 140 138 129 बाइट्स
def f(n,r=0):
c=d=2
while r<n:
c+=1;d*=c
while 1>d%10:d//=10
i=d%c;r+=i==2or i and min(i%j for j in range(2,i))
return c
इसे ऑनलाइन आज़माएं!
पायथन 2 , 126 125 बाइट्स
def f(n,r=0):
c=d=2
while r<n:
c+=1;d*=c
while d%10<1:d/=10
i=d%c
r+=i==2or i and min(i%j for j in range(2,i))
print c
इसे ऑनलाइन आज़माएं!
स्पष्टीकरण: जब तक वर्तमान फैक्टरियल 10 से विभाज्य है, तब तक 10 से विभाजित करते रहें, और फिर प्रायोगिक के लिए फैक्टरियल मोडुलो वर्तमान संख्या की जांच करें।
-20 बाइट्स और डोमिनिक वैन एसेन -9 बाइट्स के लिए कॉर्ड कॉइनहेयरिंग के लिए धन्यवाद !
हास्केल , 129 111 बाइट्स
g n
|n`mod`10>0=n
|0<1=g$div n 10 f=(!!)[n|n<-[1..],let p=mod(g$product[1..n])n,[x|x<-[2..p],mod p x<1]==[p]]
इसे ऑनलाइन आज़माएं!
g
0
संख्या से हटाता है ।
f
लेता है k
एक अनंत सूची समझ कहाँ से वें तत्व:
[x|x<-[2..p],mod p x==0]==[p]
है prime
हालत (के divisors की सूची तुलना p
और बस पी की एक सूची)।
और p
है mod(g$foldr(*)1[1..n])n
भाज्य के सापेक्ष के माध्यम से पारित g
।
उपयोगकर्ता के लिए 18 धन्यवाद बचा