2つの正方形の合計を数える


45

負でないn数値を指定するとn、整数の2乗の合計として表現する方法の数を出力しますn == a^2 + b^2OEIS A004018)。注ことab、正、負、またはゼロ、及びその順序事項することができます。最少バイトが勝ちます。

例えば、n=25与える12ため25のように表すことができます。

(5)^2  + (0)^2
(4)^2  + (3)^2
(3)^2  + (4)^2
(0)^2  + (5)^2
(-3)^2 + (4)^2
(-4)^2 + (3)^2
(-5)^2 + (0)^2
(-4)^2 + (-3)^2
(-3)^2 + (-4)^2
(0)^2  + (-5)^2
(3)^2  + (-4)^2
(4)^2  + (-3)^2

以下がの値n=25です。コードがで動作するように注意してくださいn=0

0 1
1 4
2 4
3 0
4 4
5 8
6 0
7 0
8 4
9 4
10 8
11 0
12 0
13 8
14 0
15 0
16 4
17 8
18 4
19 0
20 8
21 0
22 0
23 0
24 0
25 12

以下はn=100リストとしての値です。

[1, 4, 4, 0, 4, 8, 0, 0, 4, 4, 8, 0, 0, 8, 0, 0, 4, 8, 4, 0, 8, 0, 0, 0, 0, 12, 8, 0, 0, 8, 0, 0, 4, 0, 8, 0, 4, 8, 0, 0, 8, 8, 0, 0, 0, 8, 0, 0, 0, 4, 12, 0, 8, 8, 0, 0, 0, 0, 8, 0, 0, 8, 0, 0, 4, 16, 0, 0, 8, 0, 0, 0, 4, 8, 8, 0, 0, 0, 0, 0, 8, 4, 8, 0, 0, 16, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 8, 4, 0, 12]

面白い事実:シーケンスには任意の高い用語が含まれており、その移動平均の限界はπです。

リーダーボード:


4
待って、何?「シーケンスには任意の高い用語が含まれており、その移動平均の限界はπです。」
スティーヴィーグリフィン

@StewieGriffin 2つのステートメントは一貫しています。シーケンスを考えてください1,0,2,0,0,3,0,0,0,4,0,0,0,0,5,...。ゼロ以外の数値の後にシーケンスを切断すると、これまでの平均は1になります。また、シーケンスの後半では、0の実行による影響は少なくなります。
xnor

5
私はそれが一貫していることを知っています。私が得られないのは、なぜ地球上でPiと等しいのですか?
スティーヴィーグリフィン

29
@StewieGriffin Nまでの項の合計は、a ^ 2 + b ^ 2 <= Nの点(a、b)に対応します。これらは半径sqrt(N)の円内の格子点で、その面積はπNです。
xnor

2
@xnorと魔法があります:(
アンドラスDeak

回答:


19

Python(59 57 56バイト)

lambda n:0**n+sum((-(n%(x-~x)<1))**x*4for x in range(n))

オンラインデモ

私のCJamの答えと同様に、これはメビウスの反転を使用し、擬似準線形時間で実行されます。

2バイトの節約にSp3000を、1 にfeersumを感謝します。


1
これらの括弧は迷惑です。
リルトシアスト

@ThomasKwa、それについて教えてください。私が本当に最初に投稿したバージョンへの途中で通過したバージョンの1つで、私を本当に驚かせたのは、-1**x常にそれ-1でした。-1低優先度の単項マイナスの後に1が続くのではなく、単一の整数リテラルトークンになると予想しました。
ピーターテイラー

2
賞金おめでとうございます!あなたのコードは私が思いついたものよりも短いです。あなたの解決策はまったく新しい予想外の数学的アイデアに基づいており、これはそのような単純な見た目の挑戦でも可能だという喜びをもたらします。メビウスの逆の結果は非常にきれいであり、自分。
xnor

乗算を4からafterに移動すると、1バイトを節約できます**x
feersum

@PeterTaylorあなたのアルゴリズムの仕組みを詳しく説明してもらえますか?どのようにメビウスの逆数をスカーレの総和問題に適用できるかはわかりません。
flawr

15

Mathematica、13バイト

組み込みが許可されている場合、これはMathematicaでそれを行う方法です。

2~SquaresR~#&

0 <= n <= 100の場合

2~SquaresR~# & /@ Range[0, 100]

{1、4、4、0、4、8、0、0、4、4、8、0、0、8、0、0、4、8、4、0、8、0、0、0、0 、12、8、0、0、8、0、0、4、0、8、0、4、8、0、0、8、8、0、0、0、8、0、0、0、4 、12、0、8、8、0、0、0、0、8、0、0、8、0、0、4、16、0、0、8、0、0、0、4、8、8 、0、0、0、0、0、8、4、8、0、0、16、0、0、0、8、8、0、0、0、0、0、0、8、4、0 、12}


1
もちろんMathematicaにはこれが組み込まれています。
ハイパーニュートリノ16

14

Python 2、44バイト

f=lambda n,x=1:+(x>n)or(n%x<1)-f(n,x+2)/4<<2

これはxsotのソリューション(Peter Taylorのソリューションに基づいています)とほぼ同じですが、符号の処理方法を簡素化することで8バイトを節約します。

完全なプログラムの場合、関数の外部にコストをかけることなく、関数に2バイトを保存できることに注意してください。

f=lambda n,x=1:x>n or(n%x<1)-f(n,x+2)/4<<2
print+f(input())

この方法で完全なプログラムを作成するには、さらに2バイト:

n=input()
f=lambda x:x>n or(n%x<1)-f(x+2)/4<<2
print+f(1)

以下のためにn > 0非常に読みやすい40バイトのソリューションがあります:

f=lambda n,x=1:n/x and(n%x<1)*4-f(n,x+2)

1
賞金を獲得しておめでとうございます!再帰的減算は、除数自体から符号を抽出する必要なく、奇数の除数の交互合計を表す簡潔で短い方法です。また、n = 0の巧妙な処理を備えたピーターテイラーのソリューションを再帰的なソリューションに合理化したxsotの功績です。
xnor


12

J、16バイト

+/@,@:=+&*:/~@i:

これは単項動詞(言い換えると、単項関数)です。 オンラインで試すか、すべてのテストケースに合格することを確認してください

説明

+/@,@:=+&*:/~@i:  Denote input by n
              i:  The array of integers from -n to n
           /~@    Take outer product wrt the following function:
       +           the sum of
        &*:        squares of both inputs
                  This results in a 2D array of a^2+b^2 for all a, b between -n and n
      =           Replace by 1 those entries that are equal to n, and others by 0
   ,@:            Flatten the binary matrix
+/@               Take its sum

11

Python 2、69 55 53 52バイト

f=lambda n,x=1:+(x>n)or(2-x%4)*(n%x<1)+f(n,x+2)/4<<2

これは、Peter Taylorの優れたソリューションに基づいた再帰関数です。


1
これは大きな改善です。しかし、まだ短くする方法がありますので、探してみることをお勧めします。
XNOR

1
@xnorもう1バイトダウン。袖にこれ以上のトリックがないことを願っています。
xsot

2
答えを出すべきかどうかはわかりませんが、それはあなたの解決策と1つのトリックにすぎませんf=lambda n,x=1:+(x>n)or(n%x<1)-f(n,x+2)/4<<2。また、デフォルトの最大再帰深度を超えてもかまいませんか?
ミッチシュワルツ

1
@MitchSchwartz私はそれが賞金に値する信じられないほどの改善であり、おそらく最終的な最適化xnorが念頭に置いていたと思います。
xsot

1
@MitchSchwartzはい、それは私が考えていた最適化です!そして、xsotの/4<<2トリックにより、私が持っていたものよりも短くなります。
XNOR

8

ジュリア、40バイト

n->n>0?4sum(i->(n-i^2)^.5%1==0,1:n^.5):1

ゴルフをしていない:

function f(n)
  if n==0
    return 1           # Handle special case of n=0
  else
    m=0                # Start the counter at zero
    for i=1:sqrt(n)    # Loop over the values (i) whose squares are
                       # less than n (except zero)
      k=sqrt(n-i^2)    # Find k such that n=k^2+i^2
      if k==floor(k)   # if k is an integer, we've found a pair
        m+=4           # Add one for each of k^2+i^2, (-k)^2+(-i)^2, and the other two
      end
    end
    return m           # Return the resulting count
  end
end

ループがを含まないことに注意してください。がi==0である場合、nは既にによって含まれてi=sqrt(n)おり、そのフォームには8個ではなく4個しかありません(0^2+k^2, 0^2+(-k)^2, k^2+0^2, (-k)^2+0^2)。


7

CJam、25 23バイト

Zri:R#Ym*{Rf-Yf#:+R=},,

これは、入力nにO(9 n時間とメモリを必要とする理論的な解決策です。

1バイトの追加コストで、合計24バイトで、複雑さをO(n 2)に減らすことができます

ri:R)Y*Ym*{Rf-Yf#:+R=},,

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

使い方

どちらか

Z                  Push 3.
 ri:R              Read an integer from STDIN and save it in R.
     #             Compute 3**R.

または

ri:R               Read an integer from STDIN and save it in R.
    )Y*            Add 1 and multiply by 2.

それから

Ym*                Take the second Cartesian power, i.e., compute all pairs.
   {          },   Filter the pairs:
    Rf-              Subtract R from each.
       Yf#           Square the differences.
          :+         Add the squares.
            R=       Compare with R.
                   If = pushed 1, keep the pair.
                ,  Count the kept pairs.

そして、1バイトの節約でそれはO(n)のまでの複雑さを取得することが可能です
ピーター・テイラー

はい私は見ました。すごい。
デニス

7

CJam(25 24 22 21バイト)

{:X!X{X\2*)%!4*\-}/z}

オンラインデモ

これは擬似準線形時間*で実行され、OEISからのステートメントを使用します

メビウス変換は、期間4シーケンス[4、0、-4、0、...]です。-マイケルソモス、2007年9月17日

入力 0は明らかに特殊なケースです(メビウスの変形と消滅はうまくいきません)が、結局1文字しかかかりません。

*擬似-入力のサイズではなく、入力の値で準線形であるため。それはTheta(n)、次のオーダーのサイズの整数で演算を行うためですnbビットMOD操作が取るべきであるb lg bので、全体的にこれにかかる時間をTheta(n lg n lg lg n)時間を。


6

ジャプト42 37 33バイト

JaptJa vaScri ptの短縮バージョンです。通訳

V=Un oU+1;Vr@X+(Vf_p2 +Y*Y¥U)l ,0

使い方

           // Implicit: U = input number
V=Un oU+1  // Set variable V to range(-U, U+1). Ends up like [-U,-U+1,...,U-1,U]
Vr@    ,0  // Reduce each item Y in V with this function, starting at 0:
X+(     l  //  Return the previous value X + the length of:
Vf_p2      //   V filtered by items Z where Z*Z
+Y*Y==U)   //    + Y*Y equals U.
           // This ends up as the combined length of all fitting pairs of squares.
           // Implicit: return last expression

おそらくもっと良いテクニックがあります。提案は大歓迎です。


6

Python 3、68 61 60バイト

lambda n:0**n+4*sum(i**.5%1+(n-i)**.5%1==0for i in range(n))

2つのネストされたリスト内包表記を使用すると、コストがかかりすぎます。代わりに、半径sqrt(n)の円上の両方の座標が整数であるかどうかを確認します。

ピーター・テイラーは、メビウス反転に基づくアプローチでこれを打ち負かしました。


よくやった。私は再帰関数をいじっていましたが、n=0エレガントに解決できませんでした。
xsot


5

Haskell、42バイト

f n|q<-[-n..n]=sum[1|a<-q,b<-q,a*a+b*b==n]

使用例:

*Main> map f [0..25]
[1,4,4,0,4,8,0,0,4,4,8,0,0,8,0,0,4,8,4,0,8,0,0,0,0,12]
*Main> 

3
qガードでのバインドは賢いです。このトリックを覚えています。
xnor

5

ジュリア、89 79 63バイト

g(x)=cos(π*x^.5)^2÷1
a(n)=(n==0)+4sum([g(i)g(n-i)for i=1:n])

これは、a整数を受け入れ、floatを返す名前付き関数です。ヘルパー関数を呼び出しますg

ゴルフをしていない:

function g(x::Integer)
    floor(cos(π*sqrt(x))^2)
end

function a(n::Integer)
    (n == 0) + 4*sum([g(i)*g(n-i) for i=1:n])
end

ここでのアプローチは、OEISにリストされているウェスリーイヴァンハートの公式の簡略化を使用しています。この単純化は、この回答から26バイトを削ったまったく同じ人物、グレンOによって発見されました!


3バイトを節約するのx^.5ではなく使用しsqrt(x)ます。そして(n==0)2バイトを節約します1÷(n+1)。そして、cos(π*sqrt(x))^2÷1ではなくを使用して、さらに4文字を保存できますfloor(cos(π*sqrt(x))^2)。また、フロートを使用しても問題はなく、とにかく整数にロックされるため、1:n/2では1:n÷2なくを使用g(x)iます。そしてsum(i->g(i)g(n-i),1:n/2)、さらにいくつかのキャラクターを剃ります。
グレンO

@GlenO素晴らしい提案、ありがとう。しかし、このsumトリックは失敗するためn=0、配列の理解を維持しました。
アレックスA.

1
したがって、それを回復することができます- i=0ケースで合計を発生させる場合、サインオンを切り替えることができます4g(n)。その(n==0)-4g(n)-4g(n/2)+8sum(i->g(i)g(n-i),0:n/2)ため、エラーは発生しません。しかし、対称性に注目することで、さらに良いことができます(n==0)+4sum([g(i)g(n-i)for i=1:n])
グレンO

@GlenOその簡素化は非常天才です。OEISのシーケンスの代替式として提出することをお勧めします!
アレックスA.

4

Pyth、16 15バイト

lfqQs^R2T^}_QQ2

Pyth Compilerでオンラインで試してください。

使い方

lfqQs^R2T^}_QQ2

          }_QQ   Compute the inclusive range from -Q to Q (input).
         ^    2  Take the second Cartesian power, i.e., compute all pairs.
 f               Filter; for each T in the list of pairs:
     ^R2T          Compute the squares of T's elements.
    s              Add the squares.
  qQ               Compare the sum with Q.
                 If q returned True, keep T.
l                Count the kept pairs.

4

TI-BASIC、23バイト

sum(seq(Σ(X²+Y²=Ans,X,-Ans,Ans),Y,-Ans,Ans

とても簡単です。Σ(合計です。

奇妙なことに、をsum(seq(sum(seq(スローしERR:ILLEGAL NEST、そうしますがΣ(Σ(sum(seq(Σ(問題ありません。私はΣ(親を守るために内側に置くことを選びました。


違いは何だsumとはΣ
-alephalpha

1
@alephalphaΣ(は合計を取り、X²+Y²=AnsX -Ansとfromの間のすべてのfrom値を合計します。sum Ans(はリストの合計なので、seq(...、Y、-Ans、Ans
リトシアスト

4

JavaScript(ES6)、66 60バイト

n=>eval("for(r=0,a=~n;a++<n;)for(b=~n;b++<n;)r+=a*a+b*b==n")

おかげで6バイト節約 @ edc65の

説明

n=>eval(`              // use eval to allow for loops in an unparenthesised arrow function
  for(r=0,             // r = number of pairs
    a=~n;a++<n;        // a = first number to square
  )
      for(b=~n;b++<n;) // b = second number to square
        r+=a*a+b*b==n  // add one to the result if a^2 + b^2 == n
                       // implicit: return r
`)

テスト

n = <input type="number" oninput='result.innerHTML=(

n=>eval("for(r=0,a=~n;a++<n;)for(b=~n;b++<n;)r+=a*a+b*b==n")

)(+this.value)' /><pre id="result"></pre>


1
60:n=>eval('for(r=0,a=~n;a++<n;)for(b=~n;b++<n;)r+=a*a+b*b==n')
edc65

@ edc65いいね!ループをかっこなしの矢印関数evalに入れることは考えていませんでしたfor~オペレーターのハハについても忘れました。
user81655

4

Python 3、93 62 69バイト

Itertoolsは機能していなかったため、2つの範囲を再度使用しましたが、バイトを節約するために範囲を移動しました。

編集: nを定義する前にnを超える範囲を定義したため、以前のコードは実際には機能しませんでした。

lambda n:sum(i*i+j*j==n for i in range(-n,n+1)for j in range(-n,n+1))

2

APL、23 20 19バイト

{+/⍵=∊∘.+⍨×⍨0,,⍨⍳⍵}

説明:

{+/⍵=∊∘.+⍨×⍨0,,⍨⍳⍵}        Monadic function:
                 ⍳⍵          1 2 3 ... ⍵
               ,⍨            Duplicate
             0,              Concatenate to 0
          ×⍨                 Square everything
      ∘.+⍨                   Make an addition table
     ∊                       Flatten
   ⍵=                        1s where equal to the input
 +/                          Sum up the 1s

APLにJ i:(-nからnまでの数字)関数がないという事実を除けば、これはJの答えとほとんど同じように機能します。

トレインを使用することはできません。これは、3バイトのコストがかかるため、-\⍳2×⍵解析されないため(-\) ⍳ (2×⍵)です。他の頂点のペアでも同様です。これらの括弧はすべて、通常の関数を短くします。

ここで試してみてください。の出力は、1すべての値が一致することを意味します。


2

Matlab 41バイト

前の回答のようにさらに小さい

@(n)nnz(~mod(sqrt(n-(1:n^.5).^2),1))*4+~n

本質的にAgawa001の答えはパワーとsqrtで置き換え


2

キャンディー17 14バイト

最初にスタックにプッシュされた入力

~TbAT1C(sWs+Aeh)Z

~T0C(sWs+Aeh)Z

peekA    # copy arg from stack to register A
range2   # create double sided range on stack, -A, 1-A, ... A-1, A
digit0   # prefix argument to 'cart', 
cart     # cartesian product of current stack(0), and other stack(0)
while    # while stack not empty
  sqr    # pop and square and push
  swap   # swap two stack elements
  sqr    # pop and square and push
  add    # pop and pop and add and push
  pushA  # push original argument
  equal  # equality test 0/1
  popAddZ  # Z := Z + pop
endwhile
pushZ    # push Z onto stack, will be output to stdout on termination

2

CJam、28

qi_mF{3a>},{~)\4%2-&}%4+:*1?

それほど短くはありませんが、効率的です。たとえば、15625の結果はすぐに28です。OEISの因数分解ベースの式を使用します。
オンラインで試す

説明:

qi       read input and convert to integer
_        make a copy (will be used to handle the 0 case at the end)
mF       factorize into [prime exponent] pairs
{…},     filter the array of pairs
  3a>    with the condition that the pair is greater than [3]
          which means the prime factor must be ⩾3
{…}%     transform each pair as follows:
  ~      dump the prime factor and exponent onto the stack
  )      increment the exponent
  \      swap with the prime
  4%     get the remainder mod 4 (it will be 1 or 3)
  2-     subtract 2 (resulting in -1 or 1)
  &      bitwise AND with the incremented exponent (see below)
4+       append a 4 to the array
:*       multiply all
1?       if the input was 0, use 1, else use the above result

計算に関する詳細:

  • 素数が1 mod 4の場合、コードは計算します (exponent + 1) & -1exponent + 1
  • 素数が3 mod 4の場合、コードはを計算します(exponent + 1) & 1。これは、指数が奇数の場合は0、偶数の場合は1です。

これらの値をすべて乗算し、4を乗算すると、OEIS式が正確になります。


2

Python 2、68バイト

def x(n):r=range(-n,n+1);print sum(a*a+b*b==n for a in r for b in r)

という関数を定義します x()番号nを取る。

オンラインでお試しください。 http://ideone.com/aRoxGF


printor returnステートメントがありません。
ズガルブ

おかげで、私は完全に忘れていました。ただし、リンクにはprintステートメントがあります。コードの作成中にコードを編集しました。
Rɪᴋᴇʀ

大丈夫ですよ。しかし、これはn=0and n=1(1と4の代わりに0と2)に対して誤った結果を与えるようです。たぶん、範囲の制限を調整する必要がありますか?
ズガルブ

@Zgarbうん、彼らはで終わるべきn+1です。
リトシアスト

1
探します。
Rɪᴋᴇʀ

2

Pyth、41 35 33 30 27バイト

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

編集:おかげisaacg、私が得たm*Fの仕事に!はい!

?Q*F+4m.&tt%ed4hhdr-PQ2 8 1
                                (implicit) Q = input()
?Q                              If Q != 0
      m                           Map to d (exponent, prime) from ...
                  r-PQ2 8         run-length-encoded(PQ with 2's removed)
       .&                           Bitwise and
           %ed4                       d[-1] % 4
         tt                           -2
                hd                  with d[0]
               h                      +1
    +4                            Append 4 to the resulting array
  *F                              Then multiply it all together
                          1     Else 1

編集:ビット単位を入れて戻すと、バイトをさらに節約できます!また、「以前」のものをすべて削除しました。散らかり始めていました。

おかげで aditsuと、そして彼にCJamソリューションmaltysenと彼のヒント(ある日、私が得るm*Fd仕事に。ある日...)

J4Vr-PQ2 8=J*J.&tt%eN4hhN;?QJ1
                                (implicit) Q=input()
J4                              J=4
    -PQ2                        Remove all 2's from the prime factorization of Q
   r     8                      run-length encode (exponent, prime factor)
  V                      ;      For N in range( the above ):
          =J*J                      J = J * ...
                tt%eN4                N[-1] mod 4 -2 
                      hhN             (exponent + 1)
              .&                    bitwise and
                          ?QJ1  if Q != 0 print(J) else print(1)

ご了承ください、

  • 素数が1 mod 4の場合、次のよう-1 & (exponent + 1)になります。exponent + 1

  • しかし、素数が3 mod 4の場合、次のようになります 1 & (exponent + 1)している、0指数が奇数の場合、および1場合でも、

それをすべて掛け合わせ(最初は4回)、入力に加算される2つの正方形の合計数を取得します。


2

Python、57バイト

ナイスチャレンジ。残念ながら、現時点ではこれより短くなっていません。

lambda n:0**n+sum(2-d%4for d in range(1,n+1)if d%2>n%d)*4

2

PARI / GP、34 28バイト

生成関数の使用:

Mitch Schwartzのおかげで6バイト節約されました。

n->sum(i=-n,n,x^i^2)^2\x^n%x

ビルトインを使用して、33バイト(Mitch Schwartzのおかげで1バイトを節約):

n->if(n,2*qfrep(matid(2),n)[n],1)

qfrep(q、B、{flag = 0}):積分および2次形式qに対する1からBまでのノルムのベクトルの数(半分)のベクトル。flagが1の場合、1〜2Bの偶数ノルムのベクトルをカウントします。



matid(2)バイトを保存します。
ミッチシュワルツ

1
生成関数アプローチの場合は28まで:n->sum(i=-n,n,x^i^2)^2\x^n%x
ミッチシュワルツ


1

Matlab、63 50バイト

@(y)nnz(~mod(sqrt(y-power((1:sqrt(y)),2)),1))*4+~y

  • これは他の同じタイトルのコードを打ち負かすので、私はそれを置いた:D。

  • プログラムは正の整数解を見つけ、4を掛けて負の解を包含します。

  • 25個すべての最初のテストケースを実行できます。

    for i=1:25 ans(i)
    end
    
       1
    
       4
    
       4
    
       0
    
       4
    
       8
    
       0
    
       0
    
       4
    
       4
    
       8
    
       0
    
       0
    
       8
    
       0
    
       0
    
       4
    
       8
    
       4
    
       0
    
       8
    
       0
    
       0
    
       0
    
       0
    
       12
    


おかげで、それは同じように含める私は@StewieGriffinルイス1に関する公正ゲーム
Abr001am

ヒント:MATLABからの結果の投稿を計画している場合は、format compact=)を使用してください。
Stewie Griffin

1

JavaScript、89バイト

n=prompt()
p=Math.pow
for (x=c=(+n?0:1);x<=n;x++)if(x&&p(n-p(x,2),.5)%1===0)c+=4
alert(c)

I / O行を削除したとしても、これがJavaScriptの最短回答ではないことはわかっていますが、数秒以内に100万件の結果が得られる最高のパフォーマンスのJS回答だと思います分)。


===の代わりに==を使用できますか?
リトシアスト

私は、ベストプラクティスを使用するだけで、できます。
アダムダリー

1

PHP、70バイト、競合しない

for($x=-1;$x++<=$n=$argv[1];)$s+=(-($n%($x-~$x)<1))**$x*4;echo$n?$s:1;

Pythonの回答の1つから盗まれたアルゴリズム...私はどれを忘れました。投稿する前に何が起こっているかを少なくとも部分的に理解したかった。


for(;$x<=$n=$argv[1];)$s+=(-($n%(2*$x+1)<1))**$x++*4;echo$n?$s:1;5バイト節約します。$x-~$xと等しいため2*$x+1、変数を割り当てずに開始できます。
ヨルクヒュルサーマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.