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


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.