स्वाप कार्यक्रम विभाजकों का परीक्षण करने के लिए आधा है


19

चार पूर्णांक अनुक्रम

इस चुनौती में, आप एक सकारात्मक पूर्णांक के चार अलग-अलग गुणों का परीक्षण करेंगे, जो निम्नलिखित अनुक्रमों द्वारा दिए गए हैं। एक सकारात्मक पूर्णांक N है

  1. परिपूर्ण ( OEIS A000396 ), यदि N के समुचित विभाजकों का योग N के बराबर है । अनुक्रम 6, 28, 496, 8128, 33550336, 8589869056, 137438691328, 2305843008139952128 से शुरू होता है ...
  2. refactorable ( OEIS A033950 ), अगर की divisors की संख्या एन के एक भाजक है एन । अनुक्रम 1, 2, 8, 9, 12, 18, 24, 36, 40, 56, 60, 72, 80, 84, 88, 96, 104, 108, 128 से शुरू होता है ...
  3. व्यावहारिक ( OEIS A005153 ), अगर हर पूर्णांक 1 ≤ कश्मीर ≤ एन से कुछ अलग divisors की राशि है एन । अनुक्रम 1, 2, 4, 6, 8, 12, 16, 18, 20, 24, 28, 30, 32, 36, 40, 42, 48, 54, 56 से शुरू होता है ...
  4. अत्यधिक समग्र ( OEIS A002128 ), अगर हर नंबर 1 ≤ कश्मीर <N से सख्ती से कम divisors है एन । अनुक्रम 1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260, 1680, 2520, 5040 से शुरू होता है ...

चार कार्यक्रम

आपका कार्य चार कार्यक्रम लिखना है (पूर्ण कार्यक्रम, फ़ंक्शन परिभाषा या अनाम फ़ंक्शन जो किसी भी मानक विधि द्वारा I / O करते हैं )। प्रत्येक प्रोग्राम इनमें से किसी एक क्रम की सदस्यता समस्या को हल करेगा। दूसरे शब्दों में, प्रत्येक प्रोग्राम इनपुट के रूप में एक सकारात्मक पूर्णांक एन input 1 लेगा , और यदि एन अनुक्रम में है, तो एक सत्य मान का उत्पादन करेगा और यदि नहीं तो एक मिथ्या मूल्य। आप मान सकते हैं कि एन आपकी प्रोग्रामिंग भाषा के मानक पूर्णांक प्रकार की सीमा के भीतर है।

कार्यक्रमों को निम्नलिखित तरीके से संबंधित होना चाहिए। ऐसे चार तार ABCDहैं

  1. AC वह प्रोग्राम है जो पूर्ण संख्याओं को पहचानता है।
  2. AD वह प्रोग्राम है जो रिफैक्टेबल नंबरों को पहचानता है।
  3. BC वह प्रोग्राम है जो व्यावहारिक संख्याओं को पहचानता है।
  4. BD वह प्रोग्राम है जो अत्यधिक मिश्रित संख्याओं को पहचानता है।

स्कोरिंग

आपका स्कोर तार की कुल लंबाई (बाइट्स में) है ABCD, या दूसरे शब्दों में, दो से विभाजित चार कार्यक्रमों की कुल बाइट गिनती है। प्रत्येक प्रोग्रामिंग भाषा में सबसे कम स्कोर विजेता है। मानक नियम लागू होते हैं।

उदाहरण के लिए, चार तार कर रहे हैं a{, b{n, +n}और =n}?, फिर चार कार्यक्रम हैं a{+n}, a{=n}?, b{n+n}और b{n=n}?, और स्कोर 2 + 3 + 3 + 4 = 12 है।


जवाबों:


6

जावास्क्रिप्ट (ईएस 6), 46 + 55 + 6 + 36 = 282 274 ... 158 143 बाइट्स

ए:

n=>(r=0,D=x=>x&&D(x-1,n%x||(r++?q-=x:q=n)))(n)

बी:

n=>(q=(g=D=x=>x&&!(n%x||(g|=m>2*(m=x),0))+D(x-1))(m=n))

सी:

?!g:!q

डी:

?(P=k=>--k?D(n=k)<q&P(k):1)(n):n%r<1

परिणाम 4 गुमनाम कार्य करता है जो दे truthy / उनके संबंधित इनपुट के लिए falsy मूल्यों (है AC, ADऔर BCदे true/ false, BDदेता 1/ 0)।

टेस्ट स्निपेट


1
मुझे पसंद है कि आपने वास्तविक कोड को सभी 4 भागों में कैसे फैलाया है और इसे मेरे विपरीत "सशर्त" के साथ मिलाया है (मेरे पास भागों ए और बी पर कोड है और भागों सी और डी पर "सशर्त")
— एर्ल आउटगॉल्फ

2

जेली , 8 + 17 + 2 1 + 2 = 29 28 बाइट्स

ए:

Æṣ⁼$Ædḍ$

बी:

ÆDŒPS€QṢwRµṖÆdṀ<Ʋ

सी:

ƭ

डी:

0?

व्यावहारिक संख्याओं (बीसी) के लिए, 0मिथ्या है और कोई अन्य परिणाम सत्य है।

एसी और बीसी पूर्ण कार्यक्रम हैं, क्योंकि वे कार्यों के रूप में पुन: प्रयोज्य नहीं हैं।


बीसी और बीडी ठीक से काम नहीं करते हैं।
— जोनाथन एलन

ÆDŒPS€ḟ@RṆµṖÆd<ÆdẠµहालांकि दो बाइट्स की लागत के लिए बी के रूप में काम करता है (और बीसी को 0 और 1 को अन्य की तरह ही लौटाता है)।
— जोनाथन एलन

ओह @JonathanAllan नहीं, ऐसा लगता है कि मैं उलझन ŒPके साथ ŒṖ। कितनी शर्म की बात है! यदि आप इसे ठीक करते हैं तो क्या यह काम करता है? (यानी मेरा नया संपादन आज़माएं) वैसे भी यह परीक्षण करना बहुत आसान नहीं है, इसीलिए मैंने अभी तक टीआईओ लिंक शामिल नहीं किया है।
— 18:18

0

हास्केल , 69 + 133 + 3 + 3 = स्कोर 208

ए:

d n=filter((<1).mod n)[1..n]
f n=[sum(d n)-n==n,length(d n)`elem`d n]

बी:

import Data.List
d n=filter((<1).mod n)[1..n]
f n=[all(\n->any(==n)$sum$subsequences$d n)[1..n],all((<length(d n)).length.d)[1..n-1]]

सी:

!!0

डी:

!!1

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

हाँ, यह बहुत सस्ता है, लेकिन मैं एक कूलर समाधान के लिए पर्याप्त स्मार्ट नहीं हूं। : पी


1
हास्केल के बारे में मुझे ज्यादा जानकारी नहीं है लेकिन इससे आपको मदद मिल सकती हैsubsequences
— Asone Tuhid

[x|x<-[1..n],mod n x<1]से छोटा है filter((<1).mod n)[1..n]।
— लाकोनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.