(λ(n)(cadr(argmax cadr((let()(local-require math/number-theory)factorize)n))))
এটি অনলাইন চেষ্টা করুন!
(সম্পূর্ণ র্যাকেট সমাধান গঠনের বিষয়ে conক্যমত্য আছে কিনা তা আমি নিশ্চিত নই, সুতরাং আমি গাণিতিক সম্মেলনের সাথে যাচ্ছি যে খাঁটি ফাংশন গণনা করা হয়েছে।)
কিভাবে এটা কাজ করে
factorize
জোড়গুলির তালিকা হিসাবে গুণকে (factorize 108)
দেয় : দেয় '((2 2) (3 3))
। একটি জোড়ার দ্বিতীয় উপাদানটি প্রদত্ত হয় (একটি তালিকার শীর্ষ) দিয়ে ( তালিকার শীর্ষে) cadr
রচনাটির জন্য একটি শর্টহ্যান্ড ।car
cdr
আমি (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
। (আমাদের এগুলি প্রাইমগুলির মধ্যে সীমাবদ্ধ করার দরকার নেই, যেহেতু এমন কোনও সংমিশ্রণ শক্তি থাকবে না যা প্রধান শক্তিগুলির চেয়ে আরও ভাল কাজ করে))