टेस्ट अगर किसी दिए गए नंबर का वैम्पायर नंबर है


14

संपादित करें: जटिलता को बढ़ाने के हित में, मैंने चुनौती को और बढ़ा दिया है।

गणित में, एक पिशाच संख्या (या सच्चा पिशाच संख्या) एक समग्र प्राकृतिक संख्या v है, और सम संख्याओं n के साथ, जिसे दो पूर्णांक x और y में से प्रत्येक में n / 2 अंकों से विभाजित किया जा सकता है और दोनों अनुगामी शून्य के साथ नहीं। जहाँ v में x और y से किसी भी क्रम में गिनती के सभी अंक ठीक-ठीक होते हैं, वहीं बहुलता भी। x और y को नुकीले कहा जाता है।

वैम्पायर नंबर के बारे में अधिक

स्यूडोवेरिक संख्या

स्यूडोवैगरिक संख्याएँ पिशाच संख्याओं के समान होती हैं, सिवाय इसके कि एक n-अंक pseudovampire संख्या के नुकीले लंबाई n / 2 अंकों की नहीं होनी चाहिए। स्यूडोवैगरिक संख्याओं में अंकों की एक विषम संख्या हो सकती है, उदाहरण के लिए 126 = 6 × 21।

इनपुट

कमांड लाइन या स्टड से संख्या स्वीकार करें

उत्पादन

  • "1260 = 21 * 60" (यदि संख्या एक वैम्पायर है तो पहले छोटे नुकीले)।
  • "1261 एक वैम्पायर नंबर नहीं है।" (यदि संख्या एक पिशाच संख्या नहीं है)
  • "126 = 6 * 21"। (यदि संख्या एक छद्म पिशाच संख्या है)

संपादित करें: यदि संख्या में कई नुकीले हैं, तो इसे प्रदर्शित करें।

x = fang1a * fang1b = fang2a * fang2b

मैंने तय किया है कि मैं प्राइम वैम्पायर को शामिल नहीं करूंगा, मैं इसके साथ ओवरबोर्ड नहीं जाऊंगा।
st0le

हो सकता है कि मैं मुद्रण जोड़ दूं अगर इसका पिशाच या छद्म पिशाच हो, तो आप लोग क्या कहते हैं?
st0le

कई जोड़ियों के बारे में क्या?
सूतक

@gnibbler, मैं इसे वापस कर दूँगा।
st0le

1
@ नाकिलोन, उन्हें बढ़ते क्रम में छापें। कब fang1aसे पहले दिखाई देता हैfang2afang1a < fang2a
st0le

जवाबों:


5

अजगर - 188 वर्ण

Pseudovampire संख्या नहीं करता है

from itertools import*
n=input()
a=[]
for i in map("".join,permutations(`n`)):x,y=int(i[::2]),int(i[::-2]);a+=[(x,y)]*(x*y==n)
print n,a and"=%s*%s"%min(a)or"is not a Vampire Number"

इसके अलावा कई जोड़े (125460 के लिए) और अंतरिक्ष के बाद छूटी नहीं है =
Nakilon

(जाँच की यहाँ )
Nakilon

@Nakilon, यह उत्तर कई जोड़े के लिए संशोधन से पहले है
gnibbler

4

रूबी, 190 वर्ण

o=[]
[*x.chars].permutation{|r|a=r.pop(x.size/2).join.to_i
r=r.join.to_i
o|=[[a,r]]if a<=r&&a*r==x.to_i}
puts x+(o.any? ? o.map{|i|" = "+i*" * "}*"":" is not a Vampire Number.")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.