স্ট্যাকড, 34 30 বাইট
@n 1 2 6|>2\^,:n 2 log>keep 0#
অথবা
{!1 2 6|>2\^,:n 2 log>keep 0#}
প্রথমটি টিওএস-এ ইনপুট নেয় এবং টিওএস-এ আউটপুট ছেড়ে দেয়; দ্বিতীয়টি একটি ফাংশন। এখানে চেষ্টা করুন!
ব্যাখ্যা
@n 1 2 6|>2\^,:n 2 log>keep 0#
@n set TOS to `n`
1 2 6|>2\^, equiv. [1, ...2 ** range(2, 6)]
: duplicate it
n push `n`
2 log log base-2
> element-wise `>`
keep keep only truthy values
0# yield the first element
Repl এ কাজ করার একটি উদাহরণ এখানে দেওয়া হয়েছে :
> 8 (* input *)
(8)
> @n 1 2 6|>2\^,:n 2 log>keep 0# (* function *)
(4)
> (* output *)
(4)
পরীক্ষার মামলা
> {!1 2 6|>2\^,:n 2 log>keep 0#} @:f
()
> (0 1 2 15 16 123 260 131313 34359750709) $f map
((1 1 4 4 8 8 16 32 64))
>
বা, একটি সম্পূর্ণ প্রোগ্রাম হিসাবে:
{!1 2 6|>2\^,:n 2 log>keep 0#} @:f
(0 1 2 15 16 123 260 131313 34359750709) $f map
out
2