পটভূমি
গতবার, আমরা একটি নির্দিষ্ট আকারের গোষ্ঠীগুলি গণনা করেছি , যা একটি তুচ্ছ সমস্যা।
এবার, আমরা কেবল আবেলীয় গোষ্ঠীগুলি , অর্থাত্ একটি বহিরাগত অপারেশন সহ গোষ্ঠীগুলি গণনা করব । আনুষ্ঠানিকভাবে একটি দলের (জি, *) Abelian হলে এক্স * Y = Y * এক্স সব জন্য X, Y মধ্যে জি ।
এইভাবে সমস্যাটি আরও সহজ হয়ে যায়, তাই আমরা সেগুলি দক্ষতার সাথে গণনা করব।
কার্য
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা একটি নে-নেতিবাচক পূর্ণসংখ্যা এনকে ইনপুট হিসাবে গ্রহণ করে এবং অর্ডার এন এর নন-আইসোমর্ফিক আবেলীয় গোষ্ঠীর সংখ্যা মুদ্রণ করে বা প্রদান করে ।
গোষ্ঠীর সংখ্যা গণনার একটি উপায় - যা আমরা এ (এন) দ্বারা চিহ্নিত করব - নিম্নলিখিতটি পর্যবেক্ষণ করে:
এ (0) = 0
যদি পি একটি মৌলিক হয়, এ (পৃঃ ট ) এর পূর্ণসংখ্যা বিভাজন সংখ্যা সমান ট । ( সিএফআর । ওইআইএস এ০০০০১১ )
যদি এন = এম কে , এবং মি এবং কে সহ-প্রধান হয়, এ (এন) = এ (এম) এ (কে) ।
আপনি এ (এন) গণনার জন্য এই বা অন্য কোনও পদ্ধতি ব্যবহার করতে পারেন ।
পরীক্ষার মামলা
Input Output
0 0
1 1
2 1
3 1
4 2
5 1
6 1
7 1
8 3
9 2
10 1
11 1
12 2
13 1
14 1
15 1
16 5
17 1
18 2
19 1
20 2
4611686018427387904 1300156
5587736968198167552 155232
9223371994482243049 2
( OEIS A000688 থেকে নেওয়া )
অতিরিক্ত বিধি
যথেষ্ট সময়, র্যাম এবং একটি নিবন্ধের আকার দেওয়া হয়েছে যা ইনপুট ধরে রাখতে পারে, আপনার কোডটি ইচ্ছামত বৃহত্তর পূর্ণসংখ্যার জন্য (তত্ত্ব অনুসারে) কাজ করা উচিত।
আপনার কোডটি 0 থেকে 2 63 - 1 এর মধ্যে সমস্ত পূর্ণসংখ্যার জন্য কাজ করতে হবে এবং আমার মেশিনে 10 মিনিটের মধ্যে শেষ করতে হবে (ইন্টেল i7-3770, 16 জিবি র্যাম, ফেডোরা 21)।
আপনার উত্তর জমা দেওয়ার আগে শেষ তিনটি পরীক্ষার ক্ষেত্রে আপনার কোডটি সময় করে নিচ্ছেন তা দয়া করে নিশ্চিত করুন।
ম্যাথমেটিকার মতো এই কাজটিকে তুচ্ছ করে তোলে এমন বিল্ট-ইনগুলি
FiniteAbelianGroupCount
অনুমোদিত নয়।বিল্ট-ইনগুলি যে কোনও সংখ্যার পূর্ণসংখ্যা পার্টিশনগুলি বা তালিকার পার্টিশনগুলি ফিরিয়ে দেয় বা গণনা করে তা অনুমোদিত নয়।
স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য।