বৃহত্তম প্রাইম এক্সটেনশনস


22

একটি পূর্ণসংখ্যা দেওয়া হয়েছে n >= 2, এর প্রধান গুণককরণের বৃহত্তম ব্যয়কারীকে আউটপুট দিন। এটি OEIS ক্রম A051903

উদাহরণ

যাক n = 144। এটির প্রধান উপাদানটি হ'ল 2^4 * 3^2। সবচেয়ে বড় ব্যয়কারী 4

পরীক্ষার মামলা

2 -> 1
3 -> 1
4 -> 2
5 -> 1
6 -> 1
7 -> 1
8 -> 3
9 -> 2
10 -> 1
11 -> 1
12 -> 2
144 -> 4
200 -> 3
500 -> 3
1024 -> 10
3257832488 -> 3

উত্তর:




6

জেলি , 3 বাইট

ÆEṀ

এটি অনলাইন চেষ্টা করুন!

ṀEṀ - সম্পূর্ণ প্রোগ্রাম / Monadic লিঙ্ক।

--E - প্রধান ফ্যাক্টেরাইজেশনের এক্সেটরগুলির অ্যারে।
  Ṁ - সর্বোচ্চ।

এটি এম তেও কাজ করে । এটি অনলাইন চেষ্টা করুন!


5

হাস্কেল , 61 60 50 48 46 বাইট

-2 বাইটস xnor ধন্যবাদ

f n=maximum[a|k<-[2..n],a<-[1..n],n`mod`k^a<1]

এটি অনলাইন চেষ্টা করুন!

একটি আমদানি সহ 45 বাইট:

import NumberTheory
maximum.map snd.factorize

অনলাইনে চেষ্টা করে দেখুন!


এটি 0^খুব সুন্দর, তবে এটি শুধুমাত্র বুলেটিয়ান হিসাবে শর্তটি পরীক্ষা করা আরও খাটো।
xnor


4

পাইথন 2 , 78 বাইট

n=input()
e=m=0
f=2
while~-n:q=n%f<1;f+=1-q;e=q*-~e;m=max(m,e);n/=f**q
print m

এটি অনলাইন চেষ্টা করুন!

-5 ovs ধন্যবাদ ।

এই উত্তরটি প্রাথমিক চেকগুলি করে না। পরিবর্তে, এটি একটি সংখ্যার যেকোন ফ্যাক্টরীকরণের ক্ষেত্রে অন্য কোনও ফ্যাক্টরের এক্সপোনেন্টের চেয়ে একটি প্রধান ফ্যাক্টরের সর্বাধিক প্রকাশক এর চেয়ে বড় বা সমান হবে এই সত্যটি গ্রহণ করে।



@ ওভস ধন্যবাদ, মিস করেছি যে আমি যখন দ্রুত পোস্ট করার চেষ্টা করছিলাম
এরিক দি আউটগলফার


@ovs অবশেষে, যদি / অন্যটি থেকে শিথিল হন, ধন্যবাদ
এরিক দি আউটগলফার

4

জাপট -h , 9 7 বাইট

k ü mÊn

চেষ্টা করে দেখুন

k ü mÊn     :Implicit input of integer
k           :Prime factors
  ü         :Group by value
    m       :Map
     Ê      :  Length
      n     :Sort
            :Implicit output of last element

2
আমার মনে হচ্ছে এটি আরও
দীর্ঘতর

কেন বাছাই ফাংশন পরিবর্তে "sort: দল অনুসারে মান" ব্যবহার করবেন? হ্যাঁ সম্ভবত সাজানোর জন্য একটি অ্যারে ফেরত দেয় তবে আমাদের অ্যারেগুলির একটি অ্যারে প্রয়োজন ...
রোজলুপ

1
@ রোসলুপি, হুবহু; üসমান মানগুলির উপ-অ্যারে তৈরি করে। এটা তোলে করেন এছাড়াও সাজানোর মান প্রথম কিন্তু যে এখানে প্রাসঙ্গিক নয়।
শেগি






2

জাভাস্ক্রিপ্ট 54 বাইট

* ধরে নিচ্ছেন অসীম স্ট্যাক (কোড-গল্ফ চ্যালেঞ্জগুলির মতো)

P=(n,i=2,k)=>i>n?k:n%i?k>(K=P(n,i+1))?k:K:P(n/i,i,-~k)

console.log(P(2 )== 1)
console.log(P(3 )== 1)
console.log(P(4 )== 2)
console.log(P(5 )== 1)
console.log(P(6 )== 1)
console.log(P(7 )== 1)
console.log(P(8 )== 3)
console.log(P(9 )== 2)
console.log(P(10 )== 1)
console.log(P(11 )== 1)
console.log(P(12 )== 2)
console.log(P(144 )== 4)
console.log(P(200 )== 3)
console.log(P(500 )== 3)
console.log(P(1024 )== 10)
//console.log(P(3257832488 )== 3)



2

অক্টাভা , 25 বাইট

@(n)[~,m]=mode(factor(n))

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

factor(সম্ভবত পুনরাবৃত্তি হওয়া) প্রধান এক্সপোজারগুলির অ্যারে উত্পাদন করে এর দ্বিতীয় আউটপুট modeমোডের (অর্থাৎ সবচেয়ে পুনরাবৃত্ত এন্ট্রি) প্রদর্শিত হওয়ার সময় দেয়।




1

গাইয়া , 4 বাইট

ḋ)⌠)

এটি অনলাইন চেষ্টা করুন!

  • - প্রধান মৌলিককরণকে [প্রধান, ঘনিষ্ঠ] জোড় হিসাবে গণনা করে ।

    • - সর্বাধিক মান সহ ফলাফলটি মানচিত্র করুন এবং সংগ্রহ করুন।

    • ) - শেষ উপাদান (উদ্ঘাটনকারী)।

    • ) - শেষ উপাদান (সর্বাধিক প্রকাশক)

গাইয়া , 4 বাইট

ḋ)¦⌉

এটি অনলাইন চেষ্টা করুন!

  • - প্রধান মৌলিককরণকে [প্রধান, ঘনিষ্ঠ] জোড় হিসাবে গণনা করে ।

    • - শেষ উপাদানটির সাথে মানচিত্র (ঘোষক)।

    • - সর্বাধিক উপাদান পায়।



1

অষ্টাভে : 30 বাইট

@(x)max(histc(a=factor(x),a));
  1. a=factor(x)এর প্রধান উপাদানগুলি সহ একটি ভেক্টর প্রদান করে x। এটি একটি ভেক্টরটি আরোহী ক্রম অনুসারে বাছাই করা হয় যেখানে সমস্ত সংখ্যার গুণন নিজেই factor(x)ফলন xকরে যে ভেক্টরের প্রতিটি সংখ্যাই প্রধান।
  2. histc(...,a)প্রাইম ফ্যাক্টর ভেক্টরে একটি হিস্টোগ্রাম গণনা করে যেখানে বিনগুলি প্রধান উপাদান। হিস্টোগ্রাম গণনা করা হয়েছে যে আমরা প্রতিটি মৌলিক সংখ্যা এইভাবে প্রতিটি মৌলিক সংখ্যার প্রকাশককে ফলন করতে দেখেছি। আমরা এখানে কিছুটা প্রতারণা করতে পারি কারণ factor(x)ডুপ্লিকেট নম্বর বা বিনগুলি ফিরিয়ে দিলেও, কেবল একটি বিনের মধ্যে আমরা একটি প্রাথমিক সংখ্যা দেখতে পাই তার মোট পরিমাণ ক্যাপচার করবে।
  3. max(...) এইভাবে বৃহত্তম ব্যয়কারীকে ফেরত দেয়।

এটি অনলাইন চেষ্টা করুন!


1

এলিস , 17 বাইট

/o
\i@/w].D:.t$Kq

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

/o
\i@/...

দশমিক I / O সহ এটি সরল-ইশ পাটিগণিত প্রোগ্রামগুলির জন্য কেবল একটি কাঠামো। ...প্রকৃত প্রোগ্রাম, যা ইতিমধ্যে স্ট্যাক ইনপুট এবং স্ট্যাকের উপর আউটপুট ছেড়ে যায়।

অ্যালিসের আসলে কোনও পূর্ণসংখ্যার (এমনকি প্রাইম-এক্সপোঞ্জেন্ট জোড়া দিয়ে) মূল ফ্যাক্টরিয়েশন পেতে বিল্ট-ইনগুলি রয়েছে তবে আমি যে সংক্ষিপ্ততমটি ব্যবহার করেছি তার চেয়ে 10 বাইট বেশি লম্বা।

পরিবর্তে ধারণাটি হ'ল আমরা বার বার প্রতিটি স্বতন্ত্র প্রধান উপাদানটির একটি অনুলিপি ইনপুট থেকে বিভক্ত করি, যতক্ষণ না আমরা 1 পৌঁছায় । এটি গ্রহণের পদক্ষেপের সংখ্যাটি বৃহত্তম প্রধান ব্যয়কারীর সমান। আমরা কাউন্টার ভেরিয়েবল হিসাবে টেপ মাথাটি গালি দেব।

w      Remember the current IP position. Effectively starts a loop.
  ]      Move the tape head to the right, which increments our counter.
  .D     Duplicate the current value, and deduplicate its prime factors.
         That means, we'll get a number which is the product of the value's
         unique prime factors. For example 144 = 2^4 * 3^2 would become
         6 = 2 * 3.
  :      Divide the value by its deduplicated version, which decrements the
         exponents of its prime factors.
  .t     Duplicate the result and decrement it. This value becomes 0 once we
         reach a result of 1, which is when we want to terminate the loop.
$K     Jump back to the beginning of the loop if the previous value wasn't 0.
q      Retrieve the tape head's position, i.e. the number of steps we've taken
       through the above loop.

1

জুলিয়া, 60 52 40 বাইট

f(x)=maximum(collect(values(factor(x))))

স্টিডিবক্স -12 + সংশোধন ধন্যবাদ


1
আমি তোমাদের একটি কল যোগ করতে হবে মনে print()। এছাড়াও, টিআইও তে চালানোর জন্য কোডটি আমি পাইনি, আমি ধরে নিয়েছি এটি সেখানে উপলব্ধ ভাষাটির অন্য কোনও সংস্করণে কাজ করে? এটি টিআইও-তে সূক্ষ্মভাবে চলে: print(maximum(collect(values(factor(parse(BigInt,readline()))))))
স্টেডিবক্স

এটি দোভাষীর (আমার কম্পিউটারে, কমপক্ষে) কাজ করে। এটি একটি সতর্কবার্তাও সৃষ্টি করে কারণ এর মতো একটি বিগিয়ান্ট শুরু করে হ্রাস করা হয়েছে। তবুও, আপনি যদি জুলিয়া দোভাষী হিসাবে কোডটি অনুলিপি করে আটকে দেন তবে এটি কাজ করা উচিত। (যদি কোনও মুদ্রণের প্রয়োজন হয় কারণ এটি স্পষ্টরূপে মুদ্রণ করতে হয়, তবে এটি খারাপভাবে
লিখতে হবে

1
print()প্রয়োজন কারণ উত্তর একটি পুরো প্রোগ্রাম করা প্রয়োজন হয় (যে প্রদর্শন আউটপুট) অথবা একটি ফাংশন (যে আয় আউটপুট)। অন্যথায় আপনার সমাধান ঠিক আছে। দেখে মনে হচ্ছে আপনি এইভাবে কিছু বাইট সংরক্ষণ করতে পারেন (এবং মুদ্রণ এড়ানোর জন্য):f(x)=maximum(collect(values(factor(x))))
স্টেডিবক্স ২

1
আপনাকে স্বাগতম! সমাধানের অনুমোদিত ফর্ম্যাটটি কী তা নিয়ে এখানে একটি মেটা পোস্ট।
স্টেডিবক্স

0

আসলে , 4 বাইট

w♂NM

এটি অনলাইন চেষ্টা করুন!

w♂NM - সম্পূর্ণ প্রোগ্রাম।

ডাব্লু - প্রধান উপাদানটিকে [প্রধান, ঘাতক] জোড় হিসাবে চাপ দেয়।
 --N - প্রত্যেকের শেষ উপাদানটি (এক্সপোনেন্ট) পান।
   এম - সর্বাধিক

আমি পরীক্ষার কেসগুলি লেখার জন্য এই সঠিক সমাধানটি ব্যবহার করেছি :)
মেগো

@ মেগো আপনি কি ভাবেন যে এটি আরও সংক্ষিপ্ত হয়ে উঠতে পারে (আমি চাই না আপনি লুণ্ঠন করুন যদি আপনার কাছে আরও ছোট হয়, কেবল জিজ্ঞাসা করছেন)? :)
মিঃ এক্সকোডার

না, আমি বিশ্বাস করি এটি প্রকৃত পক্ষে অনুকূল।
মেগো

0

পাইথন 2 , 64 বাইট

-4 বাইট H.PWiz ধন্যবাদ।

lambda n:max(a*(n%k**a<1)for a in range(n)for k in range(2,-~n))

এটি অনলাইন চেষ্টা করুন!

এইচপিউইজের হাস্কেল উত্তরটির বন্দর । আমি কেবল এটি ভাগ করছি কারণ আমি গর্বিত যে আমি হাস্কেল কোডের এই অংশটি বুঝতে এবং এটি অনুবাদ করতে সক্ষম হয়েছি। : P: P


না range(1,n)কাজ না?
এইচ.পি.উইজ

range(1, n)[1, n) এ সমস্ত পূর্ণসংখ্যার উত্পাদন করে।
সম্পূর্ণরূপে

1
আহা, ভাল আপনি আসলে সব পথে যেতে হবে নাa
এইচপিউইজ

ওহ, ঠিক আছে, আমি এর পিছনে গণিত পুরোপুরি বুঝতে পারি না। : পি ধন্যবাদ!
সম্পূর্ণরূপে


0

অ্যাক্সিয়াম, 61 বাইট

f n==(a:=factors n;reduce(max,[a.i.exponent for i in 1..#a]))

এই প্রথম আমি খুঁজে পেলাম () প্রথমত ব্যবহার না করেই ফাংশনটি সংজ্ঞায়িত করা সম্ভব। "F (n) ==" "fn ==" এর চেয়ে একটি অক্ষর কম ...


0

র‌্যাকেট , 83 79 বাইট

(λ(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। (আমাদের এগুলি প্রাইমগুলির মধ্যে সীমাবদ্ধ করার দরকার নেই, যেহেতু এমন কোনও সংমিশ্রণ শক্তি থাকবে না যা প্রধান শক্তিগুলির চেয়ে আরও ভাল কাজ করে))


আমি অনুমান করি যে স্ট্যান্ডার্ড maxসমাধানটি (apply max (map cadr list)তবে (cadr (argmax cadr list))দুর্ভাগ্যক্রমে সংক্ষিপ্ত।
মিশা লাভরভ


0

এপিএল (এনএআরএস), 15 টি চর, 30 বাইট

{⌈/+/¨v∘=¨v←π⍵}

পরীক্ষা:

  f←{⌈/+/¨v∘=¨v←π⍵}
  f¨2..12
1 1 2 1 1 1 3 2 1 1 2 
  f¨144 200 500 1024 3257832488
4 3 3 10 3 

মন্তব্য:

{⌈/+/¨v∘=¨v←π⍵}
          v←π⍵    π12 return 2 2 3; assign to v the array of prime divisors of argument ⍵
      v∘=¨        for each element of v, build one binary array, show with 1 where are in v array, else puts 0 
                  return one big array I call B, where each element is the binary array above
   +/¨            sum each binary element array of  B
 ⌈/               get the max of all element of B (that should be the max exponet)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.