私も偶数しません...私は奇妙なだけです!


36

タスクは簡単です。整数を入力として受け取り、それが奇数の場合はそれを出力し、それ以外の場合は何もしないプログラムを作成します(停止は許可されません)。課題は、奇数バイトしか使用できないことです。

オプションで、出力に末尾の改行を追加できます。

これはコードゴルフで、(奇数)バイト単位の最短回答が勝ちです。

標準的な抜け穴は禁止されています。さらに、このチャレンジの投稿よりも新しいバージョンの言語を使用することはできません。

入力例>出力例:

13 > 13

42 >


10
これは「YなしでXを実行」チャレンジであるため、私はこのチャレンジに反対票を投じました。
リーキー修道女

4
正確にはdoes nothing otherwiseどういう意味ですか?Haskellでは、型を持つ関数Int -> Int は整数を返すか、停止しないか、エラーをスローします。入力が偶数の場合、明らかに返されるべきではないので、この場合、停止またはエラーのスローは受け入れられませんか?
ライコニ

2
ソースコードを使用できるかどうかを知りたい場合は、ブラウザコンソールでこれらのスクリプトを試してください。有効な文字セットを作成:alphabet=new Set(Array(256).fill(0).map((v,i)=>i).filter(v=>v%2).map(String.fromCharCode));。ソースが有効かどうかを確認します:[..."SOURCE CODE"].every(v=>alphabet.has(v))。ソースの無効な文字を参照してください:[...new Set("SOURCE CODE")].filter(v=>!alphabet.has(v))。引用符を忘れないでください"=> \";)
kamoroso94

14
@LeakyNun「do XをYなしで」とは、一般的なソースの制限のあるチャレンジではなく、言語の特定の機能の使用を禁止するチャレンジのことです。この課題はそれではなく、実際の「YなしでXを実行」課題を問題にする問題もありません。
マーティンエンダー

1
@Laikoniすでに無限ループに入るいくつかの答えがあるので、そのような振る舞いを見せても大丈夫だと思います。戻らないことは、何もしないと解釈できます。
M.ヘルツカンプ

回答:



67

Lenguage645529908926937253684695788965635909332404360034079 9394157991500940492270727190763049448735 1174269748937617561533841898064735499551 2293382937520069758100171520285996319バイト

これはおおよそ2十二十億バイトに相当します。

ファイルは、次のBrainfuckプログラムに変換されます。

,[<<+>+>-]<[>>+<<-]+>>[-[->]<]<[<[<]>.<]

入力をASCIIコードとして受け取ります。最大値は256です。ラッピングを使用します。


@Okx私の間違い。しかし、なぜあなたはただ使用しないのです,[<<+>+>-]<[>>+<<-]+>>[-[->]<]<[<[<]>.<]か?
user202729

1
どの程度,[[>]++[-<]<+>>]>[<<<.<]だけ3452857532394791089951バイトのために?
ジョーキング

実際には、無限ループが許可されて,-[-->++<]>+.いるため、同様に動作します
Jo King

20

x86-64マシンコード、8バイト

ブルース・フォルテのソリューションに触発されましたが、わずかに標準以下です。:-)

8D 07          lea      eax, [rdi]    ; put copy of input parameter in EAX
D1 EF          shr      edi, 1        ; shift LSB into CF
             InfiniteLoop:
F3 73 FD       rep jnc  InfiniteLoop  ; test CF; infinite loop back here if input was even
C3             ret                    ; return with original input in EAX if it was odd

EDISystem V AMD64呼び出し規約に従って、レジスタ内で単一の整数パラメーターが取得されます。

この値のコピーは最初に作成され、EAX適切な場合に返されるように格納されます。(奇数バイトの命令が必要なためLEA、通常の代わりに使用されMOVます。)

次に、値in EDIが1だけ右にシフトされ、シフトオフされたビットがキャリーフラグ(CF)に入れられます。このビットは、数値が偶数の場合は0、奇数の場合は1になります。

次に、JNC命令を使用してCFをテストします。この命令は、CFが0(つまり、偶数)の場合にのみ分岐します。これは、偶数の値に対して無限ループに入ることを意味します。奇数の値の場合、フォールスルーし、元の値(EAX)が返されます。

JNCただし、命令にはちょっとしたトリックがありREPます。プレフィックスがあります!通常、REP接頭辞は文字列命令でのみ使用されますが、IntelとAMDのマニュアルはどちらも無関係な/余分な/冗長なREP接頭辞が無視されることに同意しているため、ここで分岐命令に1つをスローして3バイトにします。このように、ジャンプ命令でエンコードされる相対オフセットも奇数です。(そしてもちろん、REPそれ自体が奇数バイトのプレフィックスです。)

ありがとうRET、奇数バイトを使用してエンコードされています!

オンラインでお試しください!


奇数の場合に値を返すと考えない場合、または偶数の場合に無限ループに入るので(戻らないように)、チャレンジの「出力」要件を満たすか、またはもっと面白いものが必要な場合は、次の関数を使用します。シリアルポートに値を出力します(ただし、もちろん奇数の場合のみです)。

x86-64マシンコード(シリアルポートへの出力)、17バイト

8D 07         lea   eax, [rdi]   ; put copy of input parameter (EDI) in EAX

B1 F7         mov   cl, 0xf7     ; put 0xF7 into low-order bits of CX
B5 03         mov   ch, 0x03     ; put 0x03 into high-order bits of CX
FE C1         inc   cl           ; increment low-order bits of CX to 0xF8 (so all together it's now 0x3F8)
0F B7 D1      movzx edx, cx      ; move CX to DX ("MOV DX, CX" would have a 16-bit prefix of 0x66)

D1 EF         shr   edi, 1       ; shift LSB of input parameter into CF
73 01         jnc   IsEven       ; test CF: branch if 0 (even), fall through if 1 (odd)
EF            out   dx, eax      ; output EAX (original input) to I/O port 0x3F8 (in DX)
            IsEven:
C3            ret                ; return

これをもう少し面白くしているのは、コードがより多くのことを行うということです。つまり、奇数バイトのみを使用してエンコードされた命令を使用してすべてを行うのはより困難でした。もちろん、これはコードゴルフで失敗することを意味するため、トレードオフのようなものです。面白くてやりがいがありますか、それとも短くしたいですか?

とにかく、これはx86 OUT命令を使用してI / Oポート0x3F8に書き込みます。これはPCの標準COM1シリアルポートです。もちろん、楽しいのは、すべての標準I / Oポート(シリアルおよびパラレル)に偶数アドレスがあるため、OUT命令のイミディエートとして単純にエンコードしたり、レジスタに直接移動したりできないことです。実際の値より1つ少ない値で初期化してから、レジスタの値をインクリメントする必要があります。また、オペランドとして使用する場合、命令で奇数バイトを使用してエンコードされたレジスタが必要なため、特定のレジスタを操作に使用することに制限されます。

また、命令が奇数のオフセットを持つようにするために、値が奇数の場合にのみ必要ですが、ループの先頭でDXレジスタを(レジスタを介してCX)初期化する必要JNCがありました。ただし、スキップしているのはOUT命令であるため、このコードで行うことは、無駄なサイクルとスクラバーレジスタです。実際には何も出力しないため、ルールに違反しません。

最後に、この関数は、入力値をに残したまま(シリアルポートへの出力を行ったか、行わなかった後)戻りEAXます。しかし、それは実際にはルールを破りません。アセンブリ言語のすべての関数は、値がで返されますEAX—問題は、それが重要な値であるか、ガベージ値であるかだけです。これは、関数のドキュメント(基本的に、値を返すか、返すか)によって決まりvoidます。この場合、値を返さないとドキュメントに記載しています。:-)

シリアルポートへの出力を実装していないため、これにはTIOリンクはありません。本物の鉄、または想像力が必要です。


説明のために+1!2行目でmovを使用できますが、1行目では使用できないのはなぜですか?
M.ヘルツカンプ

MOV命令であることをエンコードすることに加えて、そのオペランドもバイトでエンコードする必要があります。この場合、それはソースおよびデスティネーションレジスタになります(ただし、オペランドは定数のような即値でもかまいません)。異なるレジスタは異なるバイトにマップされ、それらのバイトの一部は偶数です。したがって、たとえば、使用したいのはですがmov eax, edi、これは89 F8バイト単位です。ここの「コード」セクションで、エンコードについて知りたいことよりも多くの方法を参照してください。@ M.Herzkamp
コーディグレイ


9

05AB1E、3 バイト

Éi=

コードはバイト値に対応するC9,69,3D201,105,61、すべて奇数です。

オンラインでお試しください!

説明

É     # input % 2 == 1
 i    # if true
  =   # print without popping

= # print without newlineそれは実際にはポップせずに改行で印刷されます
エリックアウトゴルファー

@EriktheOutgolfer:はい。説明を修正します。
エミナ

残念ながら、É×うまくいかないようです):
kalsowerus

@kalsowerus:ええ、私もそれに気づいた。D正面のa で正しく動作しますが、それは偶数であり、短くはありません。動作しない理由は、繰り返される暗黙的な入力が2番目の引数として取得されるためです。
エミグナ

@Emignaしかし、奇妙なことは、スタックの上位2つの値を2回スワップすると、同様に機能することです
...-kalsowerus


5

Haskell36 33バイト

c[1]=1;c[m]=1+1+c[m-1-1];o	m=c[m]

オンラインでお試しください!

使用法:o 7yiedls 7o 8無限ループに入ります。

実際のアルゴリズムは

o 1 = 1
o m = 2 + o(m-2)

私が直面した最初の問題はスペースの不足でした。そして(o引数を取る関数mは通常o m=...or として定義されているからo(m)=...です。ただし、インラインコメント{- some comment -}はトークン区切り文字としても機能するためo{--}m=...、指定されたルールの下で定義が可能です。編集:ØrjanJohansenは、スペースの代わりにタブ文字を使用して、3バイト節約できることを指摘しました。 o m=...

2番目の問題は、再帰呼び出しo(m-2)でした。-2はただ-1-1ですが、ここでは括弧が必要なためコメントトリックは機能しません。私は数を含むシングルトンリストに機能の作業をさせることによって、これを固定:o[m-2]これは入力を提供する標準的な方法ではないとして、しかし、私はヘルパー関数に計算を外部委託cリストや通話に取り組んでいますcから、oこれは正しい形式になってい。


スペースの代わりにタブを使用できます。
Ørjanヨハンセン

@ØrjanJohansenの\t代わりに動作することを確認でき{--}ます。
エソランジングフルーツ

@ØrjanJohansenありがとうございます。
ライコニ

5

Python REPL、38バイト

を使用して、前の式の値として入力を受け取ります_。出力は文字列です(奇数の場合は整数の文字列表現、偶数の場合は空の文字列)。

'%s'%[['']+[_]][-1][[_%[1+1][-1]][-1]]

オンラインで試す

実際のシェルで実行するには、ここで試してください。入力を入力して、Enterキーを押します。コードを貼り付けて、Enterキーを押します。

説明:

これを理解するにはしばらく時間がかかりました。乗算、分岐、スライス、コンマ、ピリオド、インポート、括弧、no exec、no eval、no print、およびno関数はありません。stderrを使用してその出力を機能させるソリューションを1つ入手しましたが、真実/偽の値だけでなく実際の整数を出力する必要があることに気付きました。

括弧の代わりに括弧を使用します[expression][-1]。それを単純化すると、上記のコードはに変わります'%s'%(['']+[_])[_%(1+1)]

コンマは使用できないため、リストの追加を使用してcreateを作成しました['',_]。文字列の書式設定を使用して、目的の結果が得られます。


称賛。ボーナスとして、Ruby IRBでも機能します:) Nitpick:奇数の文字列を返すことはできますか?偶数の空の文字列を返すことはできますか?
エリックドゥミニル

何もせずに印刷するか、何も返さないことは同じだと思います。ある意味では、空の文字列は何もありません。
mbomb007

はい、私は本当に厳選していました。それでも、何もではなく文字列を返します。Python REPLでは、これはNoneの場合よりも優れた一致だと思います''。とにかく、それは私が思いつくものよりもまだ10000倍優れています。
エリックドゥミニル

@EricDuminil戻ることができましたFalse。あなたが得ることができるかIDK Noneものの、。
mbomb007

4

CJam、6バイト

q_iY%%

113 95 105 89 37 37

このプログラムは、入力のmod 2(rと呼ぶ)を取り、入力文字列のr番目の文字ごとに出力します。入力番号が奇数の場合、文字列全体が印刷されますが、0文字ごとに印刷するように要求された場合、プログラムはエラーをスローします。

ここで試してみてください


いいね!投稿するつもりだったのqi_Y%]W%{}/M?ですが、これを見ました。
エソランジングフルーツ

4

Cubix23 19 17バイト

;;u!I1)%/;O=!;;/;

それを試してみてください!

@Cubixプログラムを終了するascii 64であるため、残念ながら、これは実際には奇数のテスト後に無限ループに入ります。タイムアウトになるため、TIOリンクはありません。

= (ascii 61)はCubixのノーオペレーションです。

これは、負の整数に対して実際に機能する以前のアルゴリズム(同じバイト数)のわずかな変更です。

キューブバージョン:

    ; ;
    u !
I 1 ) % / ; O =
! ; ; / ; . . .
    . .
    . .

アルゴリズム:

  • I (73) :数値として入力を読み込む
  • 1 (49) :1を押す
  • ) (41) :増分
  • % (37) :modを取る
  • / (47) : 左折してください
  • ! (33) :奇数の場合、次の命令をスキップします
    • 1;;/; ;is (59):出力用にスタックを準備します
    • O (79) :数値として出力します。
    • 次に、アルゴリズムを再入力しますが、入力の終わりをI読み取ります0ので、偶数ブランチに入ることが保証されています
  • u (117) :右手のUターン
  • ;;;!I :ループ、事実上何もしません。

負の入力に対して失敗する@MickyT。そのため、私は使用を避けました?
ジュゼッペ


3

、9バイト

¿﹪Iθ÷χ⁵→θ

オンラインでお試しください!

基本的に、入力が10/5の倍数でない場合、入力を右方向に出力します(²文字はCharcoalコードページにもあります)。使用される文字は次のとおりです。

  • ¿:コードBF
  • :コードA5
  • :コードC9
  • θ:コードF1
  • ÷:コードAF
  • χ:コードE3
  • :コードB5
  • :コード13

実際、終わり近くは冗長ですが、答えは奇妙な長さでなければならないことがわかりました...

説明:

¿      if (
 ﹪      Modulo (
  Iθ      the input as number,
  ÷χ⁵      χ (predefined value: 10) divided by 5 = 2 ) [is 1])
 →θ      then print rightwards the input as string

印刷してから右に移動します。右側に印刷すると、実際になります→θ
ニール

@Neilおっと、修正。少なくとも私の答えは無効になりませんでした... :-D-
チャーリー

3

x86_64マシンコード(Linux)、12 11バイト

不幸な0x80ことに、それでもうまくいきました(「何もしない」とは返さないことを意味します)。

0000000000000000 <odd>:
   0:   8d 07                   lea  (%rdi), %eax
   2:   83 e7 01                and    $0x1, %edi
   5:   83 ff 01                cmp    $0x1, %edi
   8:   75 fb                   jne       5  <odd+0x5>
   a:   c3                      retq

-1バイト、@ CodyGrayに感謝!

オンラインでお試しください!


1
これはx86-64であるlea (%edi),%eaxため0x67、ソースが32ビットレジスタの場合、アドレスサイズオーバーライドプレフィックス()が必要です。あなたはそれを行うことによってそれを排除することができlea (%rdi),%eaxます。これによりバイトが節約され、実際にはコードの効率がわずかに向上します(プレフィックスによりデコードが遅くなり、iキャッシュがいっぱいになります)。これをさらに短縮するためにできることは他にもいくつかありますが、それは本質的に完全な書き換えを構成するので、私は自分の答えを投稿します。:-)もちろん、私もこれを支持しました!(ああ、接頭辞を使用してジャンプオフセットを奇数にした可能性があることに気付きました。まあ、もっと魔法が必要になります。)
コーディグレイ

また、TIOにとって本当に賢いソリューションです!asmで出力を印刷するために「フッター」にボイラープレートのすべてを書きたくないので、私はasm回答のほとんどでそれをスキップしました。私はついに故障し、先日それをしましたが、これははるかに良いアイデアであり、他のすべてにCを使用することができます。これからこれを盗みます!:-)
コーディグレイ

入力に乾杯、私はアセンブリの完全な初心者ですが、これは十分簡単に​​思えました!あなたのソリューションに興味があります。ああ、信用は@ceilingcatに行く-私はそれを自分自身を盗んだ;)
ბიმო

実際に1バイトは保存しませんでした...現在F6JNE命令には偶数オフセット()があるため、偶数バイト()があります。これが、最初のコメントに編集した最後の括弧で意味したものです。奇数の整列を作成するには、実際にそのプレフィックスが必要です。または、他の方法でコードを書き換える必要があります。私はさまざまなバリエーションを試しました。私は実際にこの昨夜を見て、OUT奇数値を出力するために使用する良い方法を見つけようとしていましたが、良い解決策は私には本当に起こりませんでした。ここでの洞察は、偶数値の無限ループに入ることです。
コーディグレー

合理的な解決策はどれも機能しないため、これは実際にはかなりばかげた課題です。それは本当にx86命令セットのあいまいなコーナーをどれだけ知っているかをテストするだけです。BT誰も使用していない命令ファミリも試しました(残念ながら、すべてのレジスタエンコーディングは偶数バイトです)。値を返すだけでなく、シリアルポートに出力するコードを書く方が面白いと思うかもしれませんが、そこにバイトカウントが追加されます(特に16進数のシリアルポートアドレスが偶数であるため)!それをあきらめた。
コーディグレー

3

Mathematica、20バイト

ゴルフ以外の言語での最初のソリューションのようです。

a=1+1;g[i_/;!a\[Divides]i]=i

MacintoshChineseTraditional文字エンコーディング。\[Divides]{161, 253}(2バイト)

代替バージョン(23バイト)

\[CapitalAlpha]=1+1;\[CapitalGamma][\[CapitalChi]_/;\[CapitalAlpha]\[LeftFloor]\[CapitalChi]/\[CapitalAlpha]\[RightFloor]\[NotEqual]\[CapitalChi]]=\[CapitalChi]

または(Unicodeで表示)

Α=1+1;Γ[Χ_/;Α⌊Χ/Α⌋≠Χ]=Χ

Symbol文字エンコーディング。(1バイト文字のみを使用)

解決策は、関数を定義しますg(またはΓ入力は「何もしない」文字通り奇数で、かつ、入力が偶数の場合(評価しません)、入力に評価すること)。


バイト;数が偶数でなければならない場合、+ 1バイト(末尾)。そして\[Divides]また、奇数Unicodeのコードポイントを持っています。
user202729

必要ありませんI[1+1]、ただ使用できます{1+1}。また、フローリングブラケットのバイトが有効かどうかを確認しましたか?その場合、2から入手できます\[LeftFloor]E\[RightFloor]
マーティンエンダー

@MartinEnder Symbolフロアのみを有効にしますが、はありませE\[ExponentialE]
-user202729

あなたがキャラクターを使うことが許されていないのではないかD; v; またd、バイト値が偶数であるため.. :(
ケビンクルージセン

1
@KevinCruijssen \[Divides]はMathematicaの1文字であり、2バイトで表されます{161, 253}
-user202729

3

Perl、54バイト

が必要-Eです。

この挑戦を本当に楽しんだ。この答えを試して改善したいと思うが、それは私が今のところできる最短だと思う。私はこれらの答えを数日間オンとオフで遊んでいますが、54バイトのソリューションに満足していると感じています!

s//A_=Y[;A_=A_%O?A_W''/;y/#A-_/#-A/;s/[#-}]+/uc/ee;say

オンラインでお試しください!

説明

デフォルトでは、Perlのほとんどの文字列関数はで動作し$_ますが、開始するには空です。

最初にs//A_=Y[;A_=A_%O?A_W''/、空の文字列を$_で置き換えA_=Y[;A_=A_%O?A_W''、次にy/#A-_/#-A/次のリストに基づいて文字を置き換えます(上記のcharは下のcharになります)。

#ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
#$%&'()*+,-./0123456789:;<=>?@A

どのアップデート$_を含めるか$_=<>;$_=$_%2?$_:''。次にs/[#-}]+/uc/ee、すべての文字[#-}]+をに置き換えますuc。なければ/ee、これは単なる文字列になりucますが、/ee二回文字列の内容を評価します。最初の評価の結果を返すuc、の大文字バージョンである$_のでしかし$_全くアルファベット文字が含まれていない、これだけ戻り文字列全体を、第2の/e評価した文字列を再度、どのセット$_のいずれかに$_(入力番号)、または''かどうかに応じて数が奇数でも偶数でもありません。

最後に、必要なものが$_含まれるようになったので、改行の後に印刷sayする(の-E代わりに必要なもの)と呼びます。-e$_


代替Perl、93バイト

92バイトのコード+の1で-p、競合しないと感じます。

s//_/g;s//uc/e;y/\x09-\x0b/_/;s/____/}[/;s/___/%C]/;s/_/{''H/;y/'{}1CDGH/'-)1-3+--/;s/[#-}]+/uc/ee

タブおよび垂直タブが含まれているy///、として示さ\x09\x0b

オンラインでお試しください!


2

ロゴ390 46 52 50バイト

[ask    1   se[make]iseq    1-3 cos ?/ask   1[1/sum 1   179]?]

これは、入力が奇数の場合に入力を返し、入力が偶数の場合にエラーを引き起こすテンプレートリストです。

使用法:

show invoke [ask ... (paste code here) ... ] 5

出力

5

5は奇数であり、

invoke [ask ... (paste code here) ... ] 6

6は偶数であるため、エラーが発生します。



2

TI-BASIC、14バイト

Input Q
sinֿ¹(gcd(Q²,int(e
Q

これにより、偶数でドメインエラー(ホーム画面に何も印刷されない)がスローされます。

Input Q             Q is a variable with an odd code. We cannot use "Ans" as it's even.

            int(e   floor(e) = 2; "2" is even.
         Q²         Q may be negative, so we square it which preserves parity.
     gcd(Q²,int(e   1 if Q is odd; 2 if Q is even.
sinֿ¹(gcd(Q²,int(e   Error iff Q is even.

Q                   If there was no error, print Q.

1

Pyth14 11 10 9バイト

I + Q_ + K / Q + 3_1KQ 
I!sIcQ + 3_1Q 
I!u + 1_GQ1Q
?u + 1_GQ1k

テストスイート


それは賢い方法ですが、I%Qy1Q動作するようなものではないでしょうか?
寂部

@ジャクベ私は明らかに理解していなかったy1...しかし%、悲しいことに、許可されていません。
リーキー修道女

何故なの?%ASCII値37を持ち、奇数です。
寂部

3
@Jakubeどうやら私は、信頼できるので、OPが提供されるこのリスト(間違っている)
漏れ修道女

1

Japt、4バイト

u)çU

JaptはISO / IEC 8859-1を使用するため、これは(10進数)に対応し117 41 231 85ます。

オンラインでテストしてください!

説明

Uu)çU   Implicit: U = input integer
Uu)     Return Python-style U % (missing argument = 2). This gives 1 if U is odd, 0 if even.
   çU   Implicitly convert U to a string and repeat it that many times.
        Implicit: output result of last expression

私は最初にを使用してソリューションを試しましpたが、これは基本的çに逆の引数を使用しています。ただし、p左の引数が数値の場合、べき乗を実行するため、明示的に文字列に変換する必要があります。このソリューションは、奇数バイトが含まれていないことに加えて、実際には1バイト短くなっています。


1

dc、21バイト

[c]sa?kKKCI-1;1k%1!=a

10進数: 91 99 93 115 97 63 107 75 75 67 73 45 49 59 49 107 37 49 33 61 97

この IOのデフォルトに従って、このプログラムは入力が奇数の場合はメインスタックに残し、そうでない場合はスタックを空にします。これはf、TIOページの場合と同様に、プログラムの最後にdebugコマンドを追加することで確認できます。

オンラインでお試しください!

説明

[    # Begin macro definition.
 c   # Clear the main stack.
]sa  # End macro definition and push the macro into register "a".
?k   # Prompt for input and store it into precision parameter "k".
KK   # Push two copies of the input to the main stack.
CI-  # Push C-I = 12-10 = 2 to the main stack  
1;1  # Push the value stored in the first index of array "1" (0 by default) 
     # to the main stack. 
k    # Push 0 into parameter "k" to reset the precision (otherwise the modulus 
     # function will not work correctly).
%    # Push the input (mod 2) to the main stack.
1!=a # If the input (mod 2) does not equal 1, execute the macro in register "a".
f    # OPTIONAL: Output the contents of the main stack.

1

TI-Basic、18バイト

lirtosiastのおかげで2バイト節約

:Prompt Q
:While 5Q/ᴇ1-int(5Q/ᴇ1
:Q

バイト単位(+2改行= 3F)

:Prompt Q
 DD     51
:While 5Q/ᴇ1-int(5Q/ᴇ1
 D1    35 3B B1  35 3B  
        51 31     51 31
         83 71     83
:Q
 51

http://tibasicdev.wikidot.com/one-byte-tokensを参照してください


1
なぜfPart(?
lirtosiast

tibasicdev.wikidot.com/one-byte-tokensによれば、@ lirtosiast

ああ、どのエントリが行であり、どのエントリが列であるかを読み間違えました。
リトシアスト

1
見つかりましたInput Q[newline]sinֿ¹(gcd(Q²,int(e[newline]Q(14バイト)。別の回答として投稿できますか?
リルトシアスト

@lirtosiastうわー!別の答えを出すには明らかに十分に違います。それを愛して


0

Bash、31バイト

read a
[ $[a%2] = 0 ] ||echo $a

オンラインでお試しください!

説明:

read a                   reading the input and define it on the variable a
[ $[a%2] = 0 ]      outputs exit status 0 when a/2 is 0 and exit status 1 if not.
||                           evaluates only when the exit status left of it is 1
echo $a                displays the variable a

あなたはこれが制限されたソースチャレンジであることを見逃したようです-あなたは禁じられたバイトを使用しています。(rd $20|h改行)
Ørjanヨハンセン

@ØrjanJohansen修正私は推測
-ADDB

2
いいえ。プログラムの長さに制限はありませんが、プログラム内のすべての文字には奇数バイト値が必要です。
Ørjanヨハンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.