সর্বাধিক পারস্পরিক সহ-প্রধান উপাদান


14

সংজ্ঞা

  • দুটি সংখ্যা সহ-প্রধান যদি তাদের একমাত্র ইতিবাচক সাধারণ বিভাজক হয় 1
  • সংখ্যার একটি তালিকা পারস্পরিক সহ-প্রধান হয় যদি সেই তালিকার মধ্যে প্রতিটি জোড় একে অপরের সাথে সহ-প্রধান হয়।
  • সংখ্যার একটি গুণনীয়ক nহ'ল সংখ্যার একটি তালিকা যার পণ্যn

কার্য

একটি ধনাত্মক সংখ্যা দেওয়া হয়েছে n, nসর্বাধিক দৈর্ঘ্যের সাথে পারস্পরিক কো-প্রাইম ফ্যাক্টেরাইজেশন আউটপুট করুন include1

উদাহরণ

কারণ n=60, উত্তরটি হ'ল [3,4,5], কারণ 3*4*5=60এবং ছাড়া অন্য কোনও পারস্পরিক কো-প্রাইম ফ্যাক্টরীকরণের 1দৈর্ঘ্য এর চেয়ে বড় বা সমান নয়3 factor

বিধি এবং স্বাধীনতা

  • আপনি যেকোন যুক্তিসঙ্গত ইনপুট / আউটপুট ফর্ম্যাট ব্যবহার করতে পারেন।
  • আউটপুট তালিকার এন্ট্রিগুলি বাছাই করার দরকার নেই।

Testcases

n   output
1   []
2   [2]
3   [3]
4   [4]
5   [5]
6   [2, 3]
7   [7]
8   [8]
9   [9]
10  [2, 5]
11  [11]
12  [3, 4]
13  [13]
14  [2, 7]
15  [3, 5]
16  [16]
17  [17]
18  [2, 9]
19  [19]
20  [4, 5]
21  [3, 7]
22  [2, 11]
23  [23]
24  [3, 8]
25  [25]
26  [2, 13]
27  [27]
28  [4, 7]
29  [29]
30  [2, 3, 5]
31  [31]
32  [32]
33  [3, 11]
34  [2, 17]
35  [5, 7]
36  [4, 9]
37  [37]
38  [2, 19]
39  [3, 13]
40  [5, 8]
41  [41]
42  [2, 3, 7]
43  [43]
44  [4, 11]
45  [5, 9]
46  [2, 23]
47  [47]
48  [3, 16]
49  [49]
50  [2, 25]
51  [3, 17]
52  [4, 13]
53  [53]
54  [2, 27]
55  [5, 11]
56  [7, 8]
57  [3, 19]
58  [2, 29]
59  [59]
60  [3, 4, 5]
61  [61]
62  [2, 31]
63  [7, 9]
64  [64]
65  [5, 13]
66  [2, 3, 11]
67  [67]
68  [4, 17]
69  [3, 23]
70  [2, 5, 7]
71  [71]
72  [8, 9]
73  [73]
74  [2, 37]
75  [3, 25]
76  [4, 19]
77  [7, 11]
78  [2, 3, 13]
79  [79]
80  [5, 16]
81  [81]
82  [2, 41]
83  [83]
84  [3, 4, 7]
85  [5, 17]
86  [2, 43]
87  [3, 29]
88  [8, 11]
89  [89]
90  [2, 5, 9]
91  [7, 13]
92  [4, 23]
93  [3, 31]
94  [2, 47]
95  [5, 19]
96  [3, 32]
97  [97]
98  [2, 49]
99  [9, 11]

স্কোরিং

এটি । বাইট জিতে সংক্ষিপ্ত উত্তর।



সমতল ক্রম জন্য OEIS। (একটি শীর্ষস্থানীয় সহ 1))
মার্টিন এন্ডার

কঠোর অনুসরন চ্যালেঞ্জ: ফলাফলের তালিকায় কেবল সংলগ্ন জোড়া সহ-প্রধান হওয়া প্রয়োজন।
মার্টিন এন্ডার

4
এটি কি কেবল প্রধান শক্তিগুলির মধ্যে একটি কারণ?
পাওলো ইবারম্যান

1
@ পাওলোএবারম্যান হ্যাঁ, এটি।
লিকি নুন

উত্তর:


10

5
#^#2&@@@FactorInteger@#&[1]{1}ম্যাথমেটিকায় ফিরে আসে । তবে এটি ম্যাথিক্সে কাজ করে।
আলেফাল্ফ

@ এলফাল্ফ ধন্যবাদ, ম্যাথিকস আলাদাভাবে প্রয়োগ করে কিনা তা আমার কাছে ঘটেনি FactorInteger। :)
মার্টিন এন্ডার

9

ব্র্যাচল্যাগ , 4 বাইট

ḋḅ×ᵐ

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

ব্যাখ্যা

       # output is the list of
  ×ᵐ   # products of each
 ḅ     # block of consecutive equal elements
ḋ      # of the prime factors
       # of the input

2
আপনার প্রথম ব্র্যাচল্যাগ উত্তরের অভিনন্দন! ... কমপক্ষে ভাবি?

1
@ ফ্যাটালাইজ: আমার 2 য় ভাবি। আমি এই প্রথম থেকে ছিল। অবশ্যই আমার সংক্ষিপ্ততম :)
এমিগানা

5

05 এ বি 1 , 3 5 বাইট

+2 প্রান্ত ক্ষেত্রে ঠিক করতে বাইট 1। প্যাচের জন্য রিলেকে ধন্যবাদ (এবং টেস্ট স্যুটটির জন্য, আমার 05ab1e তেমন শক্তিশালী নয়!)

ÒγP1K

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

কিভাবে?

Ò     - prime factorisation, with duplicates
 γ    - split into chunks of consecutive equal elements
  P   - product of each list
   1  - literal one
    K - removed instances of top from previous
      - implicitly display top of stack

@ আদনান এটি "বাইটস" এর জন্য সেরা লিঙ্ক বা কোথাও কোনও ফর্ম্যাট কোড কোড পৃষ্ঠা আছে?
জোনাথন অ্যালান

হ্যাঁ, একটি কোড পৃষ্ঠা রয়েছে যা সমস্ত বাইট প্রদর্শন করে।
আদনান

1
ওহ, আমি কীভাবে এটি মিস করবো> _ _ ধন্যবাদ আপনাকে অনেক অনেক ধন্যবাদ :)
জোনাথন অ্যালান

জন্য কাজ করে না 1
লিকি নুন

@ লিকিউন সাহায্যের সাহায্যে স্থির হয়েছে :)
জোনাথন অ্যালান

3

সিজেম , 9 বাইট

{mF::#1-}

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

কেবলমাত্র তার উপাদানগুলির প্রধান শক্তিগুলিতে ইনপুট পৃথক করে এবং সেগুলি সরিয়ে দেয় 1(কেবলমাত্র ইনপুটটির জন্য প্রয়োজনীয় 1)।


3

হাস্কেল , 51 বাইট

(2#) একটি বেনাম ফাংশন একটি পূর্ণসংখ্যার গ্রহণ এবং একটি তালিকা ফিরে।

হিসাবে ব্যবহার করুন (2#) 99

m#n|m>n=[]|x<-gcd(m^n)n=[x|x>1]++(m+1)#div n x
(2#)

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

সাম্প্রতিক স্কয়ারফ্রি নম্বর চ্যালেঞ্জটিতে কিছু লোক ব্যবহৃত পাওয়ার ট্রিক দ্বারা অনুপ্রাণিত ।

  • m#nnদিয়ে শুরু করে, এর কারণগুলি তৈরি করে m
  • যদি m>n, আমরা থামি, ইতিমধ্যে আমরা ইতিমধ্যে সমস্ত কারণ খুঁজে পেয়েছি।
  • x=gcd(m^n)nnযার প্রধান উপাদানগুলির মধ্যে রয়েছে তার মধ্যে বৃহত্তম ফ্যাক্টর m। নোট করুন যেহেতু mছোটগুলি প্রথমে পরীক্ষা করা হয়, এটি যদি 1না হয়m এটি প্রাইম এটি ।
  • আমরা x1 টি না হলে ফলাফলের তালিকায় অন্তর্ভুক্ত করি এবং এরপরে mভাগ nকরে পরবর্তী দ্বারা পুনরাবৃত্তি করি x। নোট করুন xএবং div n xসাধারণ কারণ থাকতে পারে না।
  • (2#)একটি সংখ্যা নেয় এবং এর উপাদানগুলি সন্ধান শুরু করে 2

3

এমএটিএল , 7 বাইট

&YF^1X-

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

80 উদাহরণ হিসাবে ইনপুট বিবেচনা করুন ।

&YF    % Implicit input. Push array of unique prime factors and array of exponents
       % STACK: [2 3 5], [4 0 1]
^      % Power, element-wise
       % STACK: [16 1 5]
1      % Push 1
       % STACK: [16 1 5], 1
X-     % Set difference, keeping order. Implicitly display
       % STACK: [16 5]

সম্পাদনা (জুন 9, 2017): YFদুটি আউটপুট সহ 20.1.0 রিলিজে সংশোধন করা হয়েছে : অ-ফ্যাক্টর প্রাইমস এবং তাদের (শূন্য) এক্সপোশনগুলি এড়িয়ে যায়। এটি উপরের কোডটিকে প্রভাবিত করে না, যা কোনও পরিবর্তন ছাড়াই কাজ করে (তবে 1X-সরানো যেতে পারে)।


আমি ধরে নিলাম পরিবর্তনের অর্থটি 1X-নতুন প্রকাশের ক্ষেত্রে অপ্রয়োজনীয় ... এছাড়াও, এটি আমার কাছে ছেদ না করে সেট পার্থক্যের মতো দেখায়।
janrjan জোহানসেন

@ JanrjanJohansen উভয়কেই সঠিক করুন। ধন্যবাদ!
লুইস মেন্ডো

2

জেলি , 5 বাইট

ÆF*/€

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

কিভাবে?

ÆF*/€ - Main link: n
ÆF    - prime factors as [prime, exponent] pairs
   /€ - reduce €ach with:
  *   - exponentiation

অন্য পদ্ধতি যে পুলিশের (দুর্ভাগ্যবশত ব্যর্থ) সঙ্গে গিঁট হবে এটি একটি প্রয়াস একটি বিকল্প 6-বাইট সমাধান: ÆfŒgZP
এটিতে

... এবং আমার মোছা 05ab1e এন্ট্রিটির মতো এটি 1কোনও ইনপুটের 1জন্য প্রত্যাখ্যানিত হয় (খালি পণ্য সম্পাদনের প্রভাব)।
জোনাথন অ্যালান

:( আচ্ছা
ওফস, এটিকে

2

এলিস , 10 বাইট

Ifw.n$@EOK

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

দুর্ভাগ্যক্রমে, এটি ব্যবহার করে পুনরায় পূর্ণসংখ্যা I / O হিসাবে কোড পয়েন্ট । Tio লিঙ্কে পরীক্ষা ক্ষেত্রে ইনপুট 191808 যা বিশ্লিষ্ট হয়েছে 64 , 81 এবং 37 । নোট করুন যে এই সমাধানটি সবচেয়ে বড় থেকে ক্ষুদ্রতম প্রাইমকে ক্রমানুসারে প্রাথমিক শক্তিগুলি মুদ্রণ করে, সুতরাং আমরা আউটপুট পাই %Q@

সুবিধার জন্য, এখানে দশমিক I / O সহ একটি 16-বাইট সমাধান যা একই কোর অ্যালগরিদম ব্যবহার করে:

/O/\K
\i>fw.n$@E

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

ব্যাখ্যা

অন্যান্য উত্তর হিসাবে, এটি প্রধান শক্তিগুলিতে ইনপুটটিকে পচন করে।

I      Read a code point as input.
f      Compute its prime factorisation a prime/exponent pairs and push them
       to the stack in order from smallest to largest prime.
w      Remember the current IP position on the return address stack. This
       starts a loop.
  .      Duplicate the current exponent. This will be zero once all primes
         have been processed.
  n$@    Terminate the program if this was zero.
  E      Raise the prime to its corresponding power.
  O      Output the result as a character.
K      Return to the w to run the next loop iteration.

2

গণিত 46 বাইট

#[[1]]^#[[2]]&/@If[#==1,#={},FactorInteger@#]&

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


ভাল উত্তর, কিন্তু এটি কিছু পরীক্ষার ক্ষেত্রে সামান্য ভুল আউটপুট দিচ্ছে। বর্তমানে আপনার কোড আউটপুট {}; {2}; {3}; {2}; {5}; {2,3}; {7}; {2}; {3}; {2,5}; {11}; {2,3}; {13}; ... তবে এটি {}; {2}; {3}; {4}; {5}; {2,3}; {7}; {8}; {9}; {2,5}; {11}; {4,3}; {13}; ...পরিবর্তে আউটপুট করা উচিত ।
কেভিন ক্রুইজসেন 12'17

আমি মনে করি আমি এটি ঠিক করেছি
J42161217

টিআইওতে সত্যই কাজ করার কথা মনে হচ্ছে । +1 ওহ, এবং পিপিসিজিতে আপনাকে স্বাগতম, আমি দেখতে পাচ্ছি আপনি এখানে মোটামুটি নতুন। আপনি সম্ভবত এটি ইতিমধ্যে দেখে ফেলেছেন , তবে তা না হলে ম্যাথামেটিকায় গল্ফ করার টিপস পড়তে আগ্রহী হতে পারে। উপভোগকর তোমার থাকা! :)
কেভিন ক্রুইজসেন 15

1
আপনি নিজেকে খুঁজে পান, তাহলে উপাদান অ্যাক্সেস #চেয়ে বেশি #নিজেই, আপনি ব্যবহার করে বাইটের অনেক সঞ্চয় করতে পারেন Apply( @@@) পরিবর্তে Map( /@):#^#2&@@@If...
মার্টিন Ender

1

পিএইচপি, 62 বাইট

প্রাইমকে কী হিসাবে এবং ইনপুটটির জন্য প্রাইমটি কতবার মান হিসাবে ব্যবহৃত হয় তা সহ একটি মিশ্রণীয় অ্যারের মুদ্রণ করে 1

for($i=2;1<$n=&$argn;)$n%$i?++$i:$n/=$i+!++$r[$i];print_r($r);

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

আউটপুট জন্য 60

Array
(
    [2] => 2
    [3] => 1
    [5] => 1
)

পিএইচপি, 82 বাইট

for($i=2;1<$n=&$argn;)$n%$i?++$i:$n/=$i+!($r[$i]=$r[$i]?$r[$i]*$i:$i);print_r($r);

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

1আপনি যদি এর পরিবর্তে খালি অ্যারে এবং একটি সাজানো অ্যারে চান তবে ইনপুটটির জন্য কিছুই প্রিন্ট করে না এটি কিছুটা দীর্ঘ হবে

for($r=[],$i=2;1<$n=&$argn;)$n%$i?++$i:$n/=$i+!($r[$i]=$r[$i]?$r[$i]*$i:$i);sort($r);print_r($r);



0

miniML , 47 বাইট

প্রধান ফ্যাক্টরীকরণের সাথে জড়িত চ্যালেঞ্জগুলি এখানে ভয়াবহভাবে উপস্থাপিত হয়, তাই আমরা দুর্ভাগ্যক্রমে স্ট্যান্ডার্ড লাইব্রেরিতে ফ্যাক্টরীকরণ করতে বাধ্য হই।

fun n->map(fun p->ipow(fst p)(snd p))(factor n)

নোট করুন যে মিনিমলে থাকা 'মিনি' ফিচার সেটটির আকারকে বোঝায়, এতে উত্স কোডের লিখিত আকার নয়।


0

রুবি, 61 বাইট

require 'prime'
->n{(2..n).select{|e|n/e.to_f%1==0&&e.prime?}}

আমি 6-7 বাইট সমাধান দেখার পরে সত্যিই হতাশ -))


0

গণিত, 24 বাইট

Power@@@FactorInteger@#&

খুব খারাপ @@@* জিনিস নয়। এছাড়াও, আমি চাই /@*, @@*, এবং আসলে, পরিবর্তন @@@করার জন্য /@@, //@থেকে @@@বা যাই হোক না কেন এবং অসীম পরিবারকে যোগ করুন //@, ///@...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.