ত্রিশের সাথে দু'জনকে প্রতিস্থাপন করুন


36

একটি ইতিবাচক পূর্ণসংখ্যা দেওয়া n এর প্রাথমিক গুণক গ্রহণের জন্য কিছু কোড লিখুন এবং এর 2সাথে এর সমস্ত কারণকে প্রতিস্থাপন করবে 3

উদাহরণ স্বরূপ

12 = 2 * 2 * 3 -> 3 * 3 * 3 = 27

এটি তাই আপনার উত্তরটির বাইট গণনা হ্রাস করার লক্ষ্য।

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

1 -> 1
2 -> 3
3 -> 3
4 -> 9
5 -> 5
6 -> 9
7 -> 7
8 -> 27
9 -> 9
10 -> 15
11 -> 11
12 -> 27
13 -> 13
14 -> 21
15 -> 15
16 -> 81
17 -> 17
18 -> 27
19 -> 19
20 -> 45
21 -> 21
22 -> 33
23 -> 23
24 -> 81
25 -> 25
26 -> 39
27 -> 27
28 -> 63
29 -> 29

উত্তর:


63

ফ্র্যাক্ট্রান , 3 বাইট

3/2

ফ্র্যাক্ট্রানের আক্ষরিকভাবে কেবল একটি বিল্টিন রয়েছে তবে এটি এই কাজটি যা করতে চাইছে ঠিক তা করার জন্য ঘটে। (এটি নিজেও টুরিং-সম্পূর্ণ।

ভাষার সত্যই কোনও মানক সিনট্যাক্স বা দোভাষী নেই। এই দোভাষী (একটি ব্লগ পোস্টে একটি মন্তব্যে - এটি একটি খুব সাধারণ ভাষা) এখানে প্রদর্শিত বাক্য গঠনটি গ্রহণ করবে। (অন্যান্য syntaxes সঙ্গে অন্যান্য Fractran দোভাষী আছে, যেমন কিছু এই প্রোগ্রাম লিখতে হবে যেমন 3 2, অথবা এমনকি ব্যবহার 3এবং 2কমান্ড লাইন আর্গুমেন্ট, যা 0 টি + 3 বাইটের একটি স্কোর হতে হবে হিসাবে। আমার সন্দেহ এটি একটি 3 চেয়ে আরও ভাল করতে সম্ভব পূর্ব-বিদ্যমান দোভাষী, যদিও।)

ব্যাখ্যা

3/2
 /   Replace a factor of
  2  2
3    with 3
     {implicit: repeat until no more replacements are possible}

10
কাজের সঠিক সরঞ্জাম সম্পর্কে কথা বলুন ..
কেভিন ক্রুইজসেন

23
"তুচ্ছ সমাধানগুলি উত্সাহিত করবেন না যা কেবল একটি সাধারণ অন্তর্নির্মিত ব্যবহার করে।" ঠিক আছে, এই ক্ষেত্রে: একটি ভাষা "ফ্র্যাক্ট্রান" আছে যা এই নির্দিষ্ট কাজটি সমাধান করে এমন একক বিল্টিন রয়েছে তা জেনে নিজেই চিত্তাকর্ষক।
স্টিভি গ্রিফিন

3
সম্পর্কিত এসও কোড গল্ফ (প্রাক-পিপিসিজি): একটি ফ্র্যাক্ট্রান দোভাষী লিখুন
hobbs

1
@ আন্ডারবিগুড়ি: সম্ভবত একটি টুরিং-সম্পূর্ণ ভাষা খুঁজছেন যা খুব সহজ / কার্যকর করা সহজ। ট্যুরিং টারপিটগুলি যেতেই ফ্র্যাক্ট্রান সত্যই মার্জিত; বেশিরভাগের কাছে আরও অনেকগুলি রুক্ষ প্রান্ত, বিশেষ কেস বা বিশদ রয়েছে যা কোনও বড় পার্থক্য না করে পরিবর্তন করা যেতে পারে।

3
@ আন্ডারবিগুড়ি দেখে মনে হচ্ছে এটি কোলাটজ অনুমানের তার অধ্যয়ন থেকে এসেছে; তিনি প্রমাণ করেছেন যে কোলাটজের একটি সাধারণীকরণ ফ্র্যাক্ট্রানের সমতুল্য এবং ফ্র্যাক্ট্রান টিউরিং-সম্পূর্ণ, তাই সাধারণীকরণ কোলাটজ অনস্বীকার্য।
hobbs

21

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

f=lambda n:n%2*n or 3*f(n/2)

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

সংখ্যাকে 2 দিয়ে অবিচ্ছিন্নভাবে ভাগ করুন এবং ফলাফলটি 3 দ্বারা বহুগুণ করুন, যতক্ষণ না সংখ্যাটি সমান হয়। বিজোড় সংখ্যাগুলি তাদের ফিরে আসে।

32 বাইট Alt:

lambda n:n*(n&-n)**0.58496250072

এটি অনলাইনে চেষ্টা করুন । কিছু ভাসা ত্রুটি আছে। ধ্রুবক হয়log_2(3)-1

ব্যবহার (n&-n)সর্বশ্রেষ্ঠ শক্তি অফ 2 ফ্যাক্টর এটি n, ধর্মান্তরিত 3**kকরার 2**kক্ষমতা থেকে এটি উত্থাপন দ্বারা log_2(3)-1


ঠিক এই আমার সমাধান ঠিক!
গম উইজার্ড

@ ওয়েট উইজার্ড আমাকেও, আহা!
গ্র্যাভিটন

18

05 এ বি 1 ই , 4 বাইট

Ò1~P

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

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

Ò     Compute the prime factorization of the input.
 1~   Perform bitwise OR with 1, making the only even prime (2) odd (3).
   P  Take the product of the result.

এই জেলিকে 1 বাইট দ্বারা
পরাজিত করেছে

5
@ হাইপার নিউট্রিনো: আমি এটাও লক্ষ্য করেছি: "কেন ডেনিস 05 এএবি 1 ই ব্যবহার করছে? ওহ, অভিন্ন অ্যালগরিদম, সংক্ষিপ্ত বিল্টিন নাম"। সুতরাং আমাকে এমন একটি ভাষা খুঁজতে হয়েছিল যেখানে আমি আরও কম উপযুক্ত বাইটিন ব্যবহারের মাধ্যমে আরও কম বাইটে এটি করতে পারি।

14

হাস্কেল, 24 23 বাইট

until odd$(*3).(`div`2)

দুটি দিয়ে ভাগ এবং হাস্কেলের অদ্ভুত কৌশল অবধি 3 দ্বারা গুণিত করুন।

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

পয়েন্টফ্রি ফাংশনের পরিবর্তে ল্যাম্বডা এবং একই বাইট গণনা সহ বিকল্প:

odd`until`\x->div(x*3)2

সম্পাদনা করুন: @ আইস ৫২৩ আসল সংস্করণে একটি বাইট সংরক্ষণ করেছে এবং বিকল্প সংস্করণে @ Ørjan জোহানসেন একটি, তাই উভয় সংস্করণের এখনও একই দৈর্ঘ্য রয়েছে। ধন্যবাদ!


3
ল্যাম্বদা সংস্করণটি ছোট করা যেতে পারে odd`until`\x->div(x*3)2
janrjan জোহানসেন

2
এক $জোড়া বন্ধনী প্রতিস্থাপন করার মাধ্যমে আসল সংস্করণটিও একটি বাইট ছোট করা যেতে পারে : এটি অনলাইনে চেষ্টা করুন!

@ আরজান জোহানসেন: আহা, সুন্দর! ধন্যবাদ।
নিমি

@ আইস ৫২৩: কীভাবে আমি সেটিকে মিস করতে পারি, ধন্যবাদ!
নিমি

2
আমি মনে করি আপনি ()ল্যাম্বডা সংস্করণ থেকে একটি জুড়ি সরিয়ে দিতে ভুলে গেছেন
CAD97

8

জাভাস্ক্রিপ্ট (ES6), 19 বাইট

f=x=>x%2?x:f(x*1.5)

ইনপুটটি দুটি দ্বারা বিভাজ্য হওয়ার পরে এটি 1.5 দ্বারা গুণিত করে, যা 2 দ্বারা বিভাজক এবং 3 দ্বারা গুণনের সমান।


2
x*3/2একই বাইটকাউন্ট রয়েছে
লিকি নুন

1
f=জেএস এর জন্য সাধারণত প্রয়োজন হয় না।
ক্রিস্টোফ

3
@ ক্রিসটফ ধন্যবাদ, তবে নিজেকে কল করার জন্য f(x*1.5)এটির নাম থাকা দরকার f, সুতরাং কেন এটি f=অন্তর্ভুক্ত করা হয়েছে।
ইটিএইচ প্রডাকশনগুলি

@ এটিএইচ প্রডাকশনস আহ ... অবশ্যই! আমি সেটা মিস করছিলাম. কলিং কোডটি হুবহু দেখাচ্ছে এমন কোনও মেটা কি আছে?
ক্রিস্টোফ

2
@ ক্রিসটফ এখানে প্রাসঙ্গিক মেটা পোস্ট।
ETH প্রোডাকশনগুলি

8

ব্রেন-ফ্লাক , 76 বাইট

{{({}[()]<([({})]()<({}{})>)>)}{}([{}]()){{}((({})){}{})<>}<>}<>({}({}){}())

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

ব্যাখ্যা

এই প্রোগ্রামটি সংখ্যাটি দুটি দ্বারা ভাগ করে এবং বিভাগ থেকে একজনের বাকি অংশ না পাওয়া পর্যন্ত ট্রিপল করে কাজ করে। তারপরে এটি লুপিং বন্ধ করে এবং দ্বিগুণ হয় এবং চূড়ান্ত সংখ্যায় একটি যুক্ত করে।

আরও বিস্তারিত ব্যাখ্যা অবশেষে ...


> শীঘ্রই আসছেন ...
গম উইজার্ড

7

গণিত, 22 19 বাইট

3 বাইট সংরক্ষণের জন্য ল্যানলক 4কে ধন্যবাদ!

#//.x_?EvenQ:>3x/2&

খাঁটি ফাংশন যা প্রতিস্থাপনটি বারবার করে, একবারে 2 এর একটি ফ্যাক্টর। সমস্ত ইতিবাচক পূর্ণসংখ্যার উপর 265537 এর চেয়ে কম কাজ করে ।


x_?EvenQপরিবর্তে কাজ করবে x_/;EvenQ@x?
গাছ নয়

1
আপনি পুরোপুরি ঠিক বলেছেন, ধন্যবাদ!
গ্রেগ মার্টিন

6

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

Yf1Z|p

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

ডেনিসের প্রতিভা পর্যবেক্ষণের জন্য 1 বাইট সংরক্ষিত হয়েছে


এটি ব্যাখ্যা করার সর্বোত্তম উপায় হ'ল বিভিন্ন পয়েন্টে স্ট্যাকটি প্রদর্শন করা।

Yf  % Prime factors

[2 2 2 3]

1Z| % Bitwise OR with 1

[3 3 3 3]

p   % Product

81

বিকল্প সমাধান:

Yfto~+p

নিস! আমার কাছে Yf3H$X>p8 টি বাইট ছিল
লুইস মেন্ডো

6

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

আদনানকে একটি বাইট সংরক্ষণ করে ।

ÒDÈ+P

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

ব্যাখ্যা

Ò       # push list of prime factors of input
 D      # duplicate
  È     # check each factor for evenness (1 if true, else 0)
   +    # add list of factors and list of comparison results
    P   # product

2
ÒDÈ+Pএকটি বাইট সংরক্ষণ করা উচিত
আদনান

@ আদনান: ধন্যবাদ!
Emigna

6

এলিস , 9 বাইট

2/S 3
o@i

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

অন্যটির সাথে কোনও সংখ্যার বিভাজক প্রতিস্থাপনের জন্য অ্যালিসের অন্তর্নির্মিত রয়েছে। আমি ভাবিনি যে আমি খুব শীঘ্রই এটির ব্যবহার করতে চাই ...

ইনপুট / আউটপুট জন্য অক্ষরের কোড পয়েন্ট ব্যবহার করে, এই 6 বাইট হয়ে: I23SO@

ব্যাখ্যা

2   Push 2 (irrelevant).
/   Reflect to SE. Switch to Ordinal.
i   Read all input as a string.
    The IP bounces up and down, hits the bottom right corner and turns around,
    bounces down again.
i   Try to read more input, but we're at EOF so this pushes an empty string.
/   Reflect to W. Switch to Cardinal.
2   Push 2.
    The IP wraps around to the last column.
3   Push 3.
S   Implicitly discard the empty string and convert the input string to the integer
    value it contains. Then replace the divisor 2 with the divisor 3 in the input.
    This works by multiplying the value by 3/2 as long as it's divisible by 2.
/   Reflect to NW. Switch to Ordinal.
    Immediately bounce off the top boundary. Move SW.   
o   Implicitly convert the result to a string and print it.
    Bounce off the bottom left corner. Move NE.
/   Reflect to S. Switch to Cardinal.
@   Terminate the program.

1
আপনার আবেশটি আনুষ্ঠানিকভাবে নিশ্চিত করা হয়েছে।
লিকি নুন

4

জেলি , 8 5 বাইট

Æf3»P

Æf3»P  Main Link, argument is z
Æf     Prime factors
  3»   Takes maximum of 3 and the value for each value in the array
    P  Takes the product of the whole thing

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

-3 বাইট @ ডেনিসের একটি ইঙ্গিতকে ধন্যবাদ!


2
ইঙ্গিত: 2 হ'ল একমাত্র সমান এবং ক্ষুদ্রতম মৌলিক সংখ্যা।
ডেনিস

@ ডেনিস আমি দেখতে পাচ্ছি হ্যাঁ, এখনই পেয়েছি। ধন্যবাদ! :)
হাইপারনিউটারিনো

জেলি শেখার জন্য অভিনন্দন।
ফাঁস নুন

@ লিকিউন ধন্যবাদ! এবং আমাকে এটি শেখানোর জন্য ধন্যবাদ। :)
হাইপারনিউটারিনো

এই উত্তর অভিনন্দন!
এরিক দ্য আউটগল্ফার 11

4

পাইথ - 14 10 9 বাইট

*^1.5/PQ2

প্রাইম ফ্যাক্টরাইজেশন (/ পিকিউ 2) এর 2s সংখ্যা গণনা করে। 1.5 ^ (2s এর #) দ্বারা ইনপুটটিকে গুণিত করে

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


আকর্ষণীয় পদ্ধতির - খুব খারাপ এটি বিদ্যমান পাইথ সলিউশন হিসাবে সংক্ষিপ্ত নয়।
ফলটি Esolanging

@ চ্যালেঞ্জার 5 আমি এখানে অন্য কোনও পাইথ সমাধান দেখছি না।
মারিয়া

1
ওহ ঠিক আছে তাহলে. এই চ্যালেঞ্জটির জন্য আদর্শের চেয়ে এটি আরও আকর্ষণীয় পদ্ধতির।
ফলটি Esolanging


4

হেক্সাগনি , 112 91 বাইট

গ্রিডের আকার 6 (91 বাইট)

      ? { 2 . . <
     / = { * = \ "
    . & . . . { _ '
   . . { . . } ' * 2
  _ } { / . } & . ! "
 . > % . . < | . . @ |
  \ . . \ . | ~ . . 3
   . . " . } . " . "
    . & . \ = & / 1
     \ = { : = } .
      [ = { { { <

কমপ্যাক্ট সংস্করণ

?{2..</={*=\".&...{_'..{..}'*2_}{/.}&.!".>%..<|..@|\..\.|~..3..".}.".".&.\=&/1\={:=}.[={{{<

গ্রিডের আকার 7 (112 বাইট)

       ? { 2 " ' 2 <
      / { * \ / : \ "
     . = . = . = | . 3
    / & / { . . } { . "
   . > $ } { { } / = . 1
  _ . . } . . _ . . & . {
 . > % < . . ~ & . . " . |
  | . . } - " . ' . @ | {
   . . . = & . . * ! . {
    . . . _ . . . _ . =
     > 1 . . . . . < [
      . . . . . . . .
       . . . . . . .

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

কমপ্যাক্ট সংস্করণ:

?{2"'2</{*\/:\".=.=.=|.3/&/{..}{.".>$}{{}/=.1_..}.._..&.{.>%<..~&..".||..}-".'.@|{...=&..*!.{..._..._.=>1.....<[

আরও ভাল পাঠযোগ্যতার জন্য অগল্ফড সংস্করণ:

Ungolfed

আনুমানিক মেমরি লেআউট

এখানে চিত্র বর্ণনা লিখুন

ধূসর পথ (স্মৃতি সূচনা)

?     Read input as integer (Input)
{     Move to memory edge "Divisor left"
2     Set current memory edge to 2 
" '   Move to memory edge "Divisor right" 
2     Set current memory edge to 2
"     Move to memory edge "Multiplier" 
3     Set current memory edge to 3
"     Move to memory edge "Temp 2" 
1     Set current memory edge to 1 
{ { { Move to memory edge "Modulo"
=     Turn memory pointer around 
[     Continue with next instruction pointer

লুপ এন্ট্রি

%     Set "Modulo" to Input mod Divisor
<     Branch depending on result

সবুজ পথ (মানটি এখনও 2 দিয়ে বিভাজ্য)

} } {     Move to memory edge "Result"
=         Turn memory pointer around 
*         Set "Result" to "Temp 2" times "Multiplier" (3) 
{ = &     Copy "Result" into "Temp2" 
{ { } } = Move to "Temp"
:         Set "Temp" to Input / Divisor (2)
{ = &     Copy "Temp" back to "Input"
"         Move back to "Modulo"

লাল পথ (মান আর 2 দ্বারা বিভাজ্য নয়)

} = & " ~ & ' Drag what's left of "Input" along to "Multiplier"
*             Multiply "Multiplier" with "Temp 2"
! @           Output result, exit program

1
পিপিসিজিতে আপনাকে স্বাগতম! :)
মার্টিন ইন্ডার

@ মার্টিনএন্ডার ধন্যবাদ, দুর্দান্ত ভাষা বিটিডব্লিউ। :)
ম্যানফ্রেড র‌্যাডলউইমার

1
এটি ব্যবহার করার জন্য ধন্যবাদ! :) আপনি যদি মডিউল %2এবং :2উভয়কে "মডুলো" প্রান্তে গণনা করেন তবে আপনি মেমরি লেআউটটিকে সহজ করতে পারবেন না (এবং এর মাধ্যমে আপনার কত পরিমাণে চলাচল করতে হবে) ? (সুতরাং আপনি কেবল শীর্ষ দুটি প্রান্তটি থেকে মুক্তি পেতে পারেন।) এবং তারপরে, আপনি "বিভাজক" প্রান্তের পরিবর্তে "মডুলো" প্রান্তে "গুণক" শাখাটি সংযুক্ত করতে পারেন যাতে প্রতিটি শাখার পরে আপনার কম চলাচলের প্রয়োজন? (আপনি সম্ভবত সেই বিভাগটি ঘোরানও, যাতে "ফলাফল" বা "টেম্প 2" "মডুলো" স্পর্শ করে যার অর্থ আপনি পণ্যটি গণনা করতে সক্ষম হবার আগে একবার চূড়ান্ত ফলাফলটি অনুলিপি করতে হবে))
মার্টিন ইন্ডার

@ মার্টিনেন্দর উহহম সম্ভবত আমি এখনও ভাষার "অ্যাগনি" অংশটি পেয়েছি তাই আপাতত আমি সম্ভবত যুক্তি স্পর্শ না করে গ্রিডটি আরও ছোট করে
আঁকড়ে ধরছি Man


3

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

~×₂×₃↰|

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

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

~×₂×₃↰|      original program
?~×₂×₃↰.|?.  with implicit input (?) and output (.) added

?~×₂         input "un-multiplied" by 2
    ×₃       multiplied by 3
      ↰      recursion
       .     is the output
        |    or (in case the above fails, meaning that the input
                 cannot be "un-multiplied" by 2)
         ?.  the input is the output


2

জে , 11 বাইট

[:*/q:+2=q:

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

[: ক্যাপ (পরবর্তী ক্রিয়াটি একাকীভাবে কল করার জন্য স্থানধারক)

*/ এর পণ্য

q: প্রধান কারণ

+ প্লাস (যেমন যেখানে একটি যুক্ত করা হয়েছে)

2 দুই

= সমান (প্রতিটি)

q: প্রধান কারণ


আমি ভেবেছিলাম আপনি [:বিরক্তিকর মনে।
ফাঁস নুন

@ ল্যাকইনুন আমি করি, তবে আমি কনর ও ব্রায়ানের মতো চালাক ছিলাম না ।
অ্যাডম

2

জে , 15 12 10 বাইট

(+2&=)&.q:

এটি অনলাইন চেষ্টা করুন! নীচের মতো কাজ করে, এর 2সাথে প্রতিস্থাপন সংক্রান্ত বিভিন্ন যুক্তি রয়েছে3

15 বাইট

(2&={,&3)"+&.q:

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

ব্যাখ্যা

(2&={,&3)"+&.q:
           &.    "under"; applies the verb on the right, then the left,
                 then the inverse of the right
             q:  prime factors
(       )"+      apply inside on each factor
     ,&3         pair with three: [factor, 3]
 2&=             equality with two: factor == 2
    {            list selection: [factor, 3][factor == 2]
                 gives us 3 for 2 and factor for anything else
           &.q:  under prime factor

হুহ, আপনি আমার লেখার সময় আপনি অ্যালগরিদম পরিবর্তন করেছিলেন। এখন আমরা একই ব্যবহার।
অ্যাডম

@ আদম ওহ, হা হা চমৎকার উত্তর! আমি rollএখানে ব্যবহারের সুযোগটি প্রতিহত করতে পারি না । :)
কনর ও'ব্রায়েন

আসলে আমি আরও কিছু বাইট সংরক্ষণ করতে সক্ষম হতে পারি ... কিছু সম্পাদনা করে : ডি
কনর ও'ব্রায়েন

মজার আপনি এটাকে রোল বলুন, আমি এটিকে আন্ডার বলি। আশা করি শিগগিরই এটি এপিএলে আসবে।
অ্যাডম

@ আদম হাহা এটি প্রকৃতপক্ষে ডাকা হয়। আমি শর্তগুলি বিভ্রান্ত পেয়েছি
কনর ও'ব্রায়েন


2

জাপট , 19 16 10 9 7 বাইট

k ®w3Ã×

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

ব্যাখ্যা

 k ®   w3Ã ×
Uk mZ{Zw3} r*1
U              # (input)
 k m           # for every prime factor
    Z{Zw3}     # replace it by the maximum of itself and 3
           r*1 # output the product

হাহ, জেএস জাপা সঙ্গে আবদ্ধ। একটি নিশ্চিত লক্ষণ রয়েছে এর চেয়ে অনেক কম সমাধান ;-)
ETH প্রোডাকশনগুলি

ইঙ্গিতগুলি: (বা ন্যায়সঙ্গত ) এর ×জন্য একটি শর্টকাট যা কার্যকর হতে পারে। যা আছে তাও আছে । r@X*Y}1r*1XwYMath.max(X,Y)
ইটিএইচ প্রোডাকশনগুলি

ধন্যবাদ, যদিও পুনরাবৃত্তির সমাধানটি হ'ল সংক্ষিপ্ততম।
লুক

সুন্দর! আমি মনে করি আপনি k m_w3Ã×একটি বাইট সংরক্ষণ করতে পারেন । এছাড়াও, m_সংক্ষিপ্ত করা যেতে পারে ®
অলিভার


2

সিজেম, 10 9 বাইট

rimf1f|:*

সত্যিই সহজ।

ব্যাখ্যা:

ri  e# Read integer:         | 28
mf  e# Prime factors:        | [2 2 7]
1   e# Push 1:               | [2 2 7] 1
f|  e# Bitwise OR with each: | [3 3 7]
:*  e# Product:              | 63

2

হেক্সাগনি , 28 27 26 বাইট

?'2{{(\}}>='!:@=$\%<..>)"*

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

প্রেরিত:

    ? ' 2 {
   { ( \ } }
  > = ' ! : @
 = $ \ % < . .
  > ) " * . .
   . . . . .
    . . . .

এটি মূলত:

num = input()
while num%2 == 0:
    num = (num/2)*3
print num

এই মুহুর্তে এটি বাইট হ্রাস করার জন্য লুপের পথটি কতটা নির্যাতনমূলক on


ঠিক আছে, আমি
এটির কথা ভাবিনি

1
@ ম্যানফ্রেডর্যাডলুইমার চিন্তা করবেন না, হেক্সাগনিতে যে কোনও কিছুকে কোডিং করা নিজেই একটি অর্জন
জো কিং



1

আর, 42 বাইট

উত্তরের একমাত্র সঠিক পরিমাণ বাইট।

x=gmp::factorize(scan());x[x==2]=3;prod(x)

খুব সোজা, সরল gmpকরার জন্য প্যাকেজটি ব্যবহার করে x2s 3s দ্বারা প্রতিস্থাপন করে এবং পণ্যটি ফেরত দেয়।


1

বেফঞ্জ -৩৩ , ২০ বাইট

&>:2%!#v_.@
 ^*3/2 <

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

& - take in input and add it to the stack
> - move right
: - duplicate the top of the stack
2 - add two to the stack
% - pop 2 and the input off the stack and put input%2 on the stack
! - logical not the top of the stack
# - jump over the next command
_ - horizontal if, if the top of the stack is 0 (i.e. input%2 was non zero) go 
    right, else go left

If Zero:
. - output the top of the stack
@ - end code

If Not Zero:
v - move down
< - move left
2 - add 2 the top of the stack
/ - pop top two, add var/2 to the stack
3 - add 3 to stack
* - pop top two, add var*3 to the stack
^ - move up
> - move right (and start to loop)


1

পার্ল 6 , 14 বাইট

{1.5**.lsb*$_}

ডান থেকে গণনা করা lsb সর্বনিম্ন-তাত্পর্যপূর্ণ বিটের অবস্থানটি ফিরিয়ে দেয়। এটি হ'ল, বাইনারি উপস্থাপনায় কত পিছনে জিরো, যা ২ এর গুণকের সংখ্যার সমান So

say {$_*1.5**.lsb}(24);
> 81


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