যেহেতু আমরা পবিত্র নাম্বার থেকে শিখেছি , সেখানে পাঁচটি পবিত্র সংখ্যা ( 0, 4, 6, 8, 9
) রয়েছে এবং কেবলমাত্র digit সংখ্যার সমন্বিত ইতিবাচক পূর্ণসংখ্যাগুলি পবিত্র। উপরন্তু, একটি সংখ্যা বিশুদ্ধতা সংখ্যা দোষ এর সমষ্টি (হয় +2
যে জন্য 0
বা 8
, এবং +1
অন্যথায়)।
এখন, সংখ্যার পবিত্রতা উপস্থাপনের জন্য, বিবেচনার জন্য আরও একটি অতিরিক্ত সম্পত্তি রয়েছে। আপনি দেখুন, এটি কেবল গুরুত্বপূর্ণ যে সংখ্যাটির গর্তের সংখ্যা তা নয়, যেখানে সংখ্যায় এটি ঘটে সেখানেও এটি।
সংখ্যাটি বিবেচনা করুন 88
। আমাদের পুরানো নিয়ম অনুসারে, এর পবিত্রতা থাকবে 4
। তবে তা মোটামুটি ফর্সা! 8
বাম অন্য বেশী কাজ করছে 8
10 বার কাজ - এটির কাজের জন্য পুরস্কৃত করা উচিত। বিয়োগ 1, আমরা তার ডান দিকে সমস্ত সংখ্যার মোট পবিত্রতার সমান অতিরিক্ত পবিত্রতা পয়েন্টগুলি দিয়ে এটিকে পুরস্কৃত করব (বিধি 1, এই নিয়ম দ্বারা তার ডানদিকে অঙ্কগুলিতে প্রদত্ত অতিরিক্ত পবিত্রতা পয়েন্ট সহ)।
বিবেচনার জন্য আরও উদাহরণ এখানে দেওয়া হয়েছে:
Number: 8080
Digital holiness: (2 + 7 - 1) + (2 + 3 - 1) + (2 + 1 - 1) + (2 + 0 - 1)
Total holiness: 15
Number: 68904
Digital holiness: (1 + 5 - 1) + (2 + 2 - 1) + (1 + 1 - 1) + (2 + 0 - 1) + (1 + 0 - 1)
Total holiness: 10
সমস্ত অঙ্কগুলি অতিরিক্ত পবিত্রতার সাথে তাদের কাজের জন্য যথাযথভাবে পুরস্কৃত হয় এবং সব ঠিক আছে। আমরা এই সম্পত্তিটিকে "বর্ধিত পবিত্রতা" বলব।
পাইথন দুর্দান্ত ভাষায় বর্ধিত হোলারিটির গণনা করার জন্য একটি অ্যালগরিদম এ জাতীয় কিছু দেখতে পারে:
# assumes n is a holy number
def enhanced_holarity(n):
if n < 10:
return 1 if n in [0, 8] else 0
else:
digits = list(map(int,str(n)[::-1]))
res = []
for i,x in enumerate(digits):
res.append(enhanced_holarity(x))
if i > 0:
res[i] += sum(res[:i])
return sum(res)
চ্যালেঞ্জ
একটি পূর্ণসংখ্যা দেওয়া হয় n > 0
, n
টাইব্রেকার হিসাবে সংখ্যাসূচক মান ব্যবহার করে বর্ধিত পবিত্রতার দ্বারা সাজানো প্রথম পবিত্র নম্বরগুলি আউটপুট করুন । আপনি ধরে নিতে পারেন যে ইনপুট এবং আউটপুট আপনার ভাষার সর্বাধিক উপস্থাপনযোগ্য পূর্ণসংখ্যার চেয়ে বড় হবে না বা 2^64 - 1
যে কোনওটি কম।
রেফারেন্সের জন্য, এখানে কয়েকটি পরীক্ষার কেস রয়েছে (ইনপুট, আউটপুট দ্বারা অনুসরণ করা):
25
4, 6, 9, 44, 46, 49, 64, 66, 69, 94, 96, 99, 0, 8, 84, 86, 89, 40, 48, 60, 68, 90, 98, 80, 88
100
4, 6, 9, 44, 46, 49, 64, 66, 69, 94, 96, 99, 444, 446, 449, 464, 466, 469, 494, 496, 499, 644, 646, 649, 664, 666, 669, 694, 696, 699, 0, 8, 84, 86, 89, 844, 846, 849, 864, 866, 869, 894, 896, 899, 40, 48, 60, 68, 90, 98, 404, 406, 409, 484, 486, 489, 604, 606, 609, 684, 686, 689, 80, 88, 804, 806, 809, 884, 886, 889, 440, 448, 460, 468, 490, 498, 640, 648, 660, 668, 690, 698, 840, 848, 860, 868, 890, 898, 400, 408, 480, 488, 600, 608, 680, 688, 800, 808, 880, 888
200
4, 6, 9, 44, 46, 49, 64, 66, 69, 94, 96, 99, 444, 446, 449, 464, 466, 469, 494, 496, 499, 644, 646, 649, 664, 666, 669, 694, 696, 699, 944, 946, 949, 964, 966, 969, 994, 996, 999, 4444, 4446, 4449, 4464, 4466, 4469, 4494, 4496, 4499, 4644, 4646, 4649, 4664, 4666, 4669, 4694, 4696, 4699, 0, 8, 84, 86, 89, 844, 846, 849, 864, 866, 869, 894, 896, 899, 40, 48, 60, 68, 90, 98, 404, 406, 409, 484, 486, 489, 604, 606, 609, 684, 686, 689, 904, 906, 909, 984, 986, 989, 4044, 4046, 4049, 4064, 4066, 4069, 4094, 4096, 4099, 80, 88, 804, 806, 809, 884, 886, 889, 440, 448, 460, 468, 490, 498, 640, 648, 660, 668, 690, 698, 940, 948, 960, 968, 990, 998, 4404, 4406, 4409, 4484, 4486, 4489, 4604, 4606, 4609, 4684, 4686, 4689, 840, 848, 860, 868, 890, 898, 400, 408, 480, 488, 600, 608, 680, 688, 900, 908, 980, 988, 4004, 4006, 4009, 4084, 4086, 4089, 800, 808, 880, 888, 4440, 4448, 4460, 4468, 4490, 4498, 4640, 4648, 4660, 4668, 4690, 4698, 4040, 4048, 4060, 4068, 4090, 4098, 4400, 4408, 4480, 4488, 4600, 4608, 4680, 4688, 4000, 4008, 4080, 4088
2^64 - 1
? যদি কেসটি হয় তবে সম্ভবত কোন ইনপুটটি এ জাতীয় সংখ্যা উত্পন্ন করে তা খুঁজে বের করার উপযুক্ত, যাতে লোকেরা তাদের উত্তরগুলি পরীক্ষা করতে পারে।