প্রদত্ত নম্বরটি ভ্যাম্পায়ার নম্বর হলে পরীক্ষা করুন


14

সম্পাদনা: জটিলতা বৃদ্ধির স্বার্থে, আমি চ্যালেঞ্জকে আরও যুক্ত করেছি।

গণিতে, একটি ভ্যাম্পায়ার নম্বর (বা সত্য ভ্যাম্পায়ার নম্বর) একটি সংখ্যক প্রাকৃতিক সংখ্যা, সমান সংখ্যার এন সহ, এটি দুটি সংখ্যার x এবং y এর মধ্যে এন / 2 ডিজিটের সাথে সংশ্লেষ করা যেতে পারে এবং উভয় পিছনে শূন্যের সাথে নয়, যেখানে ভিতে x এবং y থেকে সমস্ত অঙ্কগুলি হুবহু, কোনও ক্রমে, বহুগুণ গণনা করে। x এবং y কে ফ্যাঙ্গস বলা হয়।

ভ্যাম্পায়ার নম্বর সম্পর্কে আরও

সিউডোভ্যাম্পায়ার সংখ্যা

সিউডোভ্যাম্পায়ার সংখ্যা ভ্যাম্পায়ার সংখ্যার সমান, কেবলমাত্র এন-ডিজিটের সিউডোভ্যাম্পায়ার সংখ্যার ফ্যাঙ্গগুলির দৈর্ঘ্য n / 2 সংখ্যার হওয়া উচিত নয়। সিউডোভ্যাম্পায়ার সংখ্যায় অদ্ভুত সংখ্যা থাকতে পারে, উদাহরণস্বরূপ 126 = 6 × 21।

ইনপুট

কমান্ড লাইন বা স্টিডিন থেকে নম্বর গ্রহণ করুন

আউটপুট

  • "1260 = 21 * 60" (সংখ্যাটি ভ্যাম্পায়ার হলে প্রথমে ছোট ফ্যাং।
  • "1261 ভ্যাম্পায়ার নম্বর নয়" " (যদি নম্বরটি ভ্যাম্পায়ার নম্বর না হয়)
  • "126 = 6 * 21"। (যদি নম্বরটি সিডোভ্যাম্পায়ার নম্বর হয়)

সম্পাদনা: যদি সংখ্যাটির একাধিক ফ্যাং থাকে তবে তা এটি প্রদর্শন করুন।

x = fang1a * fang1b = fang2a * fang2b

আমি সিদ্ধান্ত নিয়েছি প্রাইম ভ্যাম্পায়ারদের অন্তর্ভুক্ত না করব, আমি এটি দিয়ে ওভারবোর্ডে যাব না।
— st0le

সম্ভবত আমার মুদ্রণ যুক্ত করা উচিত যদি এটি ভ্যাম্পায়ার বা সিউডোভ্যাম্পায়ার হয় তবে আপনি কী বলবেন?
— st0le

একাধিক জোড়া কৌতুক সম্পর্কে কী?
— gnibbler

@gnibbler, আমি এটি সংশোধন করব।
— st0le

1
@ নকিলন, এগুলি ক্রমবর্ধমান ক্রমে মুদ্রণ করুন। fang1aসামনে প্রদর্শিত হবে fang2aযখনfang1a < fang2a
— st0le

উত্তর:


5

পাইথন - 188 অক্ষর

সিউডোভ্যাম্পায়ার নম্বরগুলি করে না

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 এর জন্য) পরিচালনা করে না এবং পরে স্থান মিস হয় =।
— নাকিলন


@ নাকিলন, এই উত্তরটি একাধিক জোড়ার
— সংশোধনটির

4

রুবি, ১৯০ টি চর

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.")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.