বর্গমূলকে সরল করুন


29

একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া হয়েছে n, সমস্ত বর্গ উপাদানগুলি বের √nকরে আকারে বর্গমূলকে সরল করুন a√b। আউটপুট a,bহওয়া যতটা সম্ভব ছোট n = a^2 * bসহ ধনাত্মক পূর্ণসংখ্যার হওয়া উচিত b

আপনি আউটপুট aএবং bউভয় ক্রম কোনও যুক্তিসঙ্গত বিন্যাসে করতে পারেন। 1অন্তর্নিহিত হিসাবে আপনি আউটপুট বাদ দিতে পারেন না ।

ফলাফল n=1..36হিসাবে (a,b):

1 (1, 1)
2 (1, 2)
3 (1, 3)
4 (2, 1)
5 (1, 5)
6 (1, 6)
7 (1, 7)
8 (2, 2)
9 (3, 1)
10 (1, 10)
11 (1, 11)
12 (2, 3)
13 (1, 13)
14 (1, 14)
15 (1, 15)
16 (4, 1)
17 (1, 17)
18 (3, 2)
19 (1, 19)
20 (2, 5)
21 (1, 21)
22 (1, 22)
23 (1, 23)
24 (2, 6)
25 (5, 1)
26 (1, 26)
27 (3, 3)
28 (2, 7)
29 (1, 29)
30 (1, 30)
31 (1, 31)
32 (4, 2)
33 (1, 33)
34 (1, 34)
35 (1, 35)
36 (6, 1)

এগুলি হ'ল OEIS A000188 এবং A007913

সম্পর্কিত: আরও জটিল সংস্করণ


আমাদের আগে এটি ছিল এবং এটি এখানে লিঙ্কিত চ্যালেঞ্জের সদৃশ হিসাবে বন্ধ ছিল।
flawr

উত্তর:


13

জেলি , 9 বাইট

ÆE;0d2ZÆẸ

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

কিভাবে এটা কাজ করে

ÆE;0d2ZÆẸ  Main link. Argument: n

ÆE         Exponents; generate the exponents of n's prime factorization.
  ;0       Append 0 since 1ÆE returns [].
    d2     Divmod by 2.
      Z    Zip/transpose to group quotients and remainders.
       ÆẸ  Unexponent; turn the exponents of prime factorizations into integers.

3
ইউটিএফ -8 এ, এটি তবে জেলি একটি কাস্টম কোড পৃষ্ঠা ব্যবহার করে। শিরোনামের বাইটস লিঙ্কটি এটিতে ইঙ্গিত করে।
ডেনিস

আপনি যে মন্তব্য পোষ্ট অনেক, তাই হয়ত আপনি বাইট পরিষ্কার মত (যেমন করা উচিত: [bytes](link-to-byes) (not UTF-8)
NoOneIsHere

12

PARI / GP, 12 বাইট

n->core(n,1)

corenডিফল্টরূপে স্কোয়ারফ্রি অংশটি ফেরত দেয় তবে দ্বিতীয় আর্গুমেন্ট পতাকাটি 1 এ সেট করা উভয় অংশকে ফিরিয়ে দেয়। আউটপুট ক্রম হয় (b, a), যেমন (n->core(n,1))(12) -> [3, 2]



6

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

t:U\~f0)GyU/

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

ব্যাখ্যা

t     % Take input n implicitly. Duplicate
:U    % Push [1 4 9 ... n^2]
\~    % True for entries that divide the input
f0)   % Get (1-based) index of the last (i.e. largest) dividing number
G     % Push input again
y     % Duplicate index of largest dividing number
U     % Square to recover largest dividing number
/     % Divide input by that. Implicitly display stack


2

গণিত 34 বাইট

#/.{a_ b_^_:>{a, b},_[b_,_]:>{1,b}}&

এটি সমস্ত ইনপুট প্রতিস্থাপন করতে বলে (# নীচের নিয়ম অনুসারে ) : (1) একটি সংখ্যা, , এর বর্গাকার মূল দ্বারা বার {a, b} এবং একটি ফাংশন বি দ্বারা whatever 1, b দ্বারা প্রতিস্থাপন করা উচিত যা পাওয়ার তা পাওয়ার জন্য । নোট করুন যে ফাংশন অনুমান করে যে ইনপুটটি ফর্মের হবে Sqrt[n],। এটি অন্যান্য ধরণের ইনপুট নিয়ে কাজ করবে না।

এই নামবিহীন ফাংশনটি গাণিতিকের জন্য অস্বাভাবিক ক্রিপ্টিক। এটির সম্পূর্ণ ফর্মটি প্রদর্শন করে এবং এর পরে মূল সংক্ষিপ্ত আকারগুলির প্রতিস্থাপনের মাধ্যমে এটি কিছুটা স্পষ্ট করা যেতে পারে।

Function[
   ReplaceAll[
      Slot[1],
      List[
         RuleDelayed[Times[Pattern[a,Blank[]],Power[Pattern[b,Blank[]],Blank[]]],List[a,b]],
         RuleDelayed[Blank[][Pattern[b,Blank[]],Blank[]],List[1,b]]]]]

যা হিসাবে একই

   ReplaceAll[
      #,
      List[
         RuleDelayed[Times[Pattern[a,Blank[]],Power[Pattern[b,Blank[]],Blank[]]],List[a,b]],
         RuleDelayed[Blank[][Pattern[b,Blank[]],Blank[]],List[1,b]]]]&

এবং

ReplaceAll[#, 
  List[RuleDelayed[
    Times[Pattern[a, Blank[]], 
     Power[Pattern[b, Blank[]], Blank[]]], {a, b}], 
   RuleDelayed[Blank[][Pattern[b, Blank[]], Blank[]], {1, b}]]] &

এবং

ReplaceAll[#, 
  List[RuleDelayed[Times[a_, Power[b_, _]], {a, b}], 
   RuleDelayed[Blank[][b_, _], {1, b}]]] &

এবং

ReplaceAll[#, {RuleDelayed[a_*b^_, {a, b}], RuleDelayed[_[b_, _], {1, b}]}]&

এবং

ReplaceAll[#, {a_*b^_ :> {a, b}, _[b_, _] :> {1, b}}] &


1

মতলব, 51 বাইট

x=input('');y=1:x;z=y(~rem(x,y.^2));a=z(end)
x/a^2

ব্যাখ্যা

x=input('')       -- takes input
y=1:x             -- numbers from 1 to x
z=y(~rem(x,y.^2)) -- numbers such that their squares divide x
a=z(end)          -- biggest such number (first part of output)
x/a^2             -- remaining part

1

জাভাস্ক্রিপ্ট (ECMAScript 2016), 40 বাইট

n=>{for(k=n;n%k**2;k--);return[k,n/k/k]}

মূলত ডেনিসের পাইথন 2 উত্তরটির একটি জাভাস্ক্রিপ্ট পোর্ট ।

এটি জেএসবিনে চেষ্টা করে দেখুন

দ্রষ্টব্য: এটি কঠোর মোডে কাজ করে না, কারণ kএটি কোথাও আরম্ভ করা হয়নি। এটি কঠোর মোডে কাজ করতে, k=nলুপে পরিবর্তন করা উচিত let k=n


1

হাস্কেল, 43> 42 বাইট

নিষ্ঠুর বল সমাধান।

এক্সনোরকে 1 বাইট সংরক্ষণ করা হয়েছে

f n=[(x,y)|y<-[1..],x<-[1..n],x*x*y==n]!!0

ভাল সমাধান, আমি এটি কীভাবে ব্যবহার করে না modবা পছন্দ করে তা পছন্দ করি div। আমি মনে করি আপনি y<-[1..]অলসতার কারণে করতে পারেন ।
xnor

হ্যাঁ তুমিই ঠিক. আমার প্রথম সমাধানটি দিয়ে এটি সম্ভব ছিল না last[(x,y)|x<-[1..n],y<-[1..n],x*x*y==n]তবে এখন এটি কার্যকর হবে। ধন্যবাদ। হাসকেলে আপনার নিজস্ব সমাধান আছে?
ড্যামিয়েন


1

পাইথন, 74 বাইট

def e(k):a=filter(lambda x:k/x**2*x*x==k,range(k,0,-1))[0];return a,k/a**2

যথেষ্ট সোজা।


0

পাইথন 2.7 (অবরুদ্ধ) - 181 বাইট

def e(n):   
 for x in range(1,n+1):
  r=(1,x)
  for i in range(1,x+1):
   l=i**.5
   for j in range(1,x+1): 
    if i*j==x and l%1==0 and j<r[1]:r=(int(l),j)                
  print x,r

হিসাবে চালান: ই (সংখ্যা) যেমন। ই (24)

নমুনা আউটপুট:

>> e(24)
1 (1, 1)
2 (1, 2)
3 (1, 3)
4 (2, 1)
5 (1, 5)
6 (1, 6)
7 (1, 7)
8 (2, 2)
9 (3, 1)
10 (1, 10)
11 (1, 11)
12 (2, 3)
13 (1, 13)
14 (1, 14)
15 (1, 15)
16 (4, 1)
17 (1, 17)
18 (3, 2)
19 (1, 19)
20 (2, 5)
21 (1, 21)
22 (1, 22)
23 (1, 23)
24 (2, 6)

1
আপনার উত্তরটি যথাসম্ভব গল্ফ করার চেষ্টা করুন, এটি একটি কোড-গল্ফ
caird coinheringaahing caird coinheringaahing

0

এপিএল, 25 টি অক্ষর

 {(⊢,⍵÷×⍨)1+⍵-0⍳⍨⌽⍵|⍨×⍨⍳⍵}

ইংরেজীতে:

  • 0⍳⍨⌽⍵|⍨×⍨⍳⍵: পুরোপুরি এনকে বিভাজক করে এন পর্যন্ত স্কোয়ারের বৃহত্তমগুলির সূচক;
  • 1+⍵-: সূচকটি বিপরীত অ্যারেতে রয়েছে, সুতরাং সূচকটি সামঞ্জস্য করুন
  • (⊢,⍵÷×⍨): ফলাফল উত্পন্ন করুন: সূচক নিজেই (ক) এবং ভাগফল খ (যা, n ÷ a * a)

টেস্ট:

     ↑{(⊢,⍵÷×⍨)⊃z/⍨0=⍵|⍨×⍨z←⌽⍳⍵}¨⍳36
1  1
1  2
1  3
2  1
1  5
1  6
1  7
2  2
3  1
1 10
1 11
2  3
1 13
1 14
1 15
4  1
1 17
3  2
1 19
2  5
1 21
1 22
1 23
2  6
5  1
1 26
3  3
2  7
1 29
1 30
1 31
4  2
1 33
1 34
1 35
6  1

0

জাভাস্ক্রিপ্ট (ECMAScript 6), 35 বাইট

f=(n,k=n)=>n/k%k?f(n,--k):[k,n/k/k]

জাভাস্ক্রিপ্ট 1+, 37 খ

for(k=n=prompt();n/k%k;--k);[k,n/k/k]

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