(λ(n)(cadr(argmax cadr((let()(local-require math/number-theory)factorize)n))))
এটি অনলাইন চেষ্টা করুন!
(সম্পূর্ণ র্যাকেট সমাধান গঠনের বিষয়ে conক্যমত্য আছে কিনা তা আমি নিশ্চিত নই, সুতরাং আমি গাণিতিক সম্মেলনের সাথে যাচ্ছি যে খাঁটি ফাংশন গণনা করা হয়েছে।)
কিভাবে এটা কাজ করে
factorizeজোড়গুলির তালিকা হিসাবে গুণকে (factorize 108)দেয় : দেয় '((2 2) (3 3))। একটি জোড়ার দ্বিতীয় উপাদানটি প্রদত্ত হয় (একটি তালিকার শীর্ষ) দিয়ে ( তালিকার শীর্ষে) cadrরচনাটির জন্য একটি শর্টহ্যান্ড ।carcdr
আমি (cadr (argmax cadr list))দ্বিতীয় উপাদানগুলির সর্বাধিক সন্ধান করার জন্য নির্বোধ কাজটি বোধ করি , তবে maxতালিকাগুলিতে কাজ (max (map cadr list))করে না : আমরা যা চাই তা করি না। আমি র্যাকেটের বিশেষজ্ঞ নই, তাই এটি করার জন্য সম্ভবত আরও একটি স্ট্যান্ডার্ড আরও ভাল উপায় আছে।
র্যাকেট, 93 বাইট
(λ(n)(define(p d m)(if(=(gcd m d)d)(+(p d(/ m d))1)0))(p(argmax(λ(d)(p d n))(range 2 n))n))
এটি অনলাইন চেষ্টা করুন!
কিভাবে এটা কাজ করে
একটি বিকল্প সংস্করণ যা আমদানি করে না factorizeএবং এর পরিবর্তে কম বেশি কিছু স্ক্র্যাচ থেকে করে। ফাংশন (p m d)সর্বোচ্চ ক্ষমতা খুঁজে বের করে dযে ভাগ mএবং তারপর আমরা শুধু সর্বোচ্চ মান খুঁজে (p n d)জন্য dমধ্যবর্তী 2এবং n। (আমাদের এগুলি প্রাইমগুলির মধ্যে সীমাবদ্ধ করার দরকার নেই, যেহেতু এমন কোনও সংমিশ্রণ শক্তি থাকবে না যা প্রধান শক্তিগুলির চেয়ে আরও ভাল কাজ করে))