ভূমিকা
পূর্ণসংখ্যার একটি ক্রম বিবেচনা করুন চ সংজ্ঞায়িত নিম্নরূপ:
- f (2) = 2
- যদি এন একটি বিজোড় প্রাইম হয় তবে f (n) = (f (n-1) + f (n + 1)) / 2
- যদি n = p · q সংমিশ্রিত হয় তবে f (n) = f (p) · f (q)
প্রতিটি এন ≥ 2 এর জন্য এফ (এন) = এন দেখতে খুব অসুবিধা হয় না , এবং এইভাবে F গণনা খুব আকর্ষণীয় চ্যালেঞ্জ হতে পারে না। আসুন সংজ্ঞাটি একটি মোড় তৈরি করুন: প্রথম কেস অর্ধেক এবং দ্বিতীয় ক্ষেত্রে দ্বিগুণ। আমরা নীচে একটি নতুন সিকোয়েন্স জি সংজ্ঞায়িত করেছি:
- g (2) = 1
- যদি n একটি বিজোড় প্রাইম হয়, তবে g (n) = g (n-1) + g (n + 1)
- যদি n = p · q সংমিশ্রিত হয়, তবে g (n) = g (p) · g (q)
কাজটি
আপনার কাজটি হ'ল ইনপুট হিসাবে পূর্ণসংখ্যা n ≥ 2 গ্রহণ করা এবং আউটপুট হিসাবে g (n) উত্পাদন করা। আপনাকে পূর্ণসংখ্যার ওভারফ্লো সম্পর্কে চিন্তা করার দরকার নেই, তবে আপনার g (1025) = 81 সঠিকভাবে গণনা করতে সক্ষম হওয়া উচিত এবং আপনার অ্যালগরিদম তাত্ত্বিকভাবে নির্বিচারে বড় ইনপুটগুলির জন্য কাজ করা উচিত work
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জিতেছে।
উদাহরণ
আমি সেই জি (1025) = 81 এর উপরে দাবি করেছি , সুতরাং আসুন এটি হাতে হাতে গণনা করুন। 1025 এর প্রাথমিক গুণনীয়ক দেয়
1025 = 5*5*41 => g(1025) = g(5)*g(5)*g(41)
যেহেতু 41 প্রধান, আমরা পাই
g(41) = g(40) + g(42)
এরপরে, আমরা 40 এবং 42 এর প্রধান গুণকগুলি গণনা করি :
40 = 2*2*2*5 => g(40) = g(2)*g(2)*g(2)*g(5) = g(5)
42 = 2*3*7 => g(42) = g(2)*g(3)*g(7) = g(3)*g(7)
এই ছোট প্রাইমস জন্য আমরা পেতে
g(3) = g(2) + g(4) = 1 + 1 = 2
g(5) = g(4) + g(6) = 1 + 2 = 3
g(7) = g(6) + g(8) = 2 + 1 = 3
এই যে মানে
g(41) = g(40) + g(42) = g(5) + g(3)*g(7) = 3 + 2*3 = 9
এবং
g(1025) = g(5)*g(5)*g(41) = 3*3*9 = 81
পরীক্ষার মামলা
50 টি পর্যন্ত জি এর মান এখানে দেওয়া আছে ।
2 -> 1
3 -> 2
4 -> 1
5 -> 3
6 -> 2
7 -> 3
8 -> 1
9 -> 4
10 -> 3
11 -> 5
12 -> 2
13 -> 5
14 -> 3
15 -> 6
16 -> 1
17 -> 5
18 -> 4
19 -> 7
20 -> 3
21 -> 6
22 -> 5
23 -> 7
24 -> 2
25 -> 9
26 -> 5
27 -> 8
28 -> 3
29 -> 9
30 -> 6
31 -> 7
32 -> 1
33 -> 10
34 -> 5
35 -> 9
36 -> 4
37 -> 11
38 -> 7
39 -> 10
40 -> 3
41 -> 9
42 -> 6
43 -> 11
44 -> 5
45 -> 12
46 -> 7
47 -> 9
48 -> 2
49 -> 9
50 -> 9
a(2*n) = a(n), এবং a(2*n+1) = a(n) + a(n+1)যদি 2*n+1প্রধান হয় তবে তা ধরে রাখে । অন্যান্য অনেক বিজোড় সংখ্যার জন্য ক্রমগুলি সম্ভবত কাকতালীয়ভাবে সম্মত হয়।
15, 21, 25, 29, 33, 41, এবং একটি গুচ্ছ আরো, কিন্তু আমি কেন যেকোনো বাস্তব প্যাটার্ন খুঁজে পাচ্ছি না।)