प्रधान संशोधित जेड-फैक्टिरियल

Aug 18 2020

मुझे उपरोक्त शर्तों के अनुसार एक एक करके समझाएं ...

हम फोन करेगा \$\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

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

जवाब

3 SomoKRoceS Aug 18 2020 at 04:25

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

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

3 JonathanAllan Aug 18 2020 at 01:36

जेली ,  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
2 cairdcoinheringaahing Aug 18 2020 at 03:08

++ , 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
2 Shaggy Aug 18 2020 at 05:56

जाप , 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
2 DominicvanEssen Aug 18 2020 at 16:57

आर , 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 बाइट्स

2 Razetime Oct 23 2020 at 15:15

भूसी , 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
1 Arnauld Aug 18 2020 at 01:21

जावास्क्रिप्ट (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)

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

1 ManishKundu Aug 18 2020 at 03:17

पायथन 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 बाइट्स के लिए कॉर्ड कॉइनहेयरिंग के लिए धन्यवाद !

1 AZTECCO Aug 18 2020 at 23:22

हास्केल , 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]]

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

g0संख्या से हटाता है ।

fलेता है kएक अनंत सूची समझ कहाँ से वें तत्व:
[x|x<-[2..p],mod p x==0]==[p]है primeहालत (के divisors की सूची तुलना pऔर बस पी की एक सूची)।

और pहै mod(g$foldr(*)1[1..n])nभाज्य के सापेक्ष के माध्यम से पारित g

उपयोगकर्ता के लिए 18 धन्यवाद बचा