タグ付けされた質問 「factoring」

このタグは、因数分解と多項式に関連する課題を説明します。Factorの難解なプログラミング言語とは関係ありません。

15
空を見上げて!それは超大型アレイです!
Code Reviewでライバルの友人から寄せられたこの質問に触発されました。 定義 スーパーアレイは、アレイ内の各新しい要素は、以前のすべての要素の合計よりも大きい配列です。{2, 3, 6, 13}スーパーアレイです 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}なぜならスーパーアレイではないからです 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 大型のアレイは、アレイ内の各新しい要素は、以前のすべての要素の積よりも大きい配列です。{2, 3, 7, 43, 1856}はスーパー配列ですが、それはまた、より大きな配列です 3 > …

14
n項の数を生成
2次数は、その素因数(多重度なし)がすべて平方根以下である正の整数です。4唯一の素因数は2であり、その平方根に等しいため、は二次数です。ただし、15は5平方根(~ 3.9)よりも大きい素因数であるため、二次数ではありません。すべての素数はそれ自体が素因数であるため、素数は二次数ではありません。最初のいくつかのセカンダリ番号は次のとおりです。 1, 4, 8, 9, 12, 16, 18, 24, 25, 27, 30, 32, 36, 40, 45, 48, 49, 50, 54, 56 三次数も同様に定義されますが、すべての素因数がその立方根以下でなければなりません。最初のいくつかの3次番号は次のとおりです。 1, 8, 16, 27, 32, 36, 48, 54, 64, 72, 81, 96, 108, 125, 128, 135, 144, 150, 160, 162 一般に、n進数は、その素因数がすべてそのn番目のルート以下であるものです。したがって、正の整数ある進数IFFその素因数のそれぞれ満たす。したがって、一次数はすべて正の整数(すべての素因数はそれ以下)であり、四次数はすべての素因数が4番目のルート以下である、などです。バツバツxPのP N ≤ Xnppppn≤ Xpn≤バツp^n ≤ x …

11
整数をエンコードする
与えられた正の整数n > 2。次のように配列に変換します。 2空の配列を返すことに等しい場合 そうでない場合、すべてnの素因数の配列を昇順で作成し、各要素を素数の順序でそのインデックスに置き換え、最後に各要素を配列に変換します たとえば、数値46を配列に変換できます。まず、それをその素因数の配列に変換します。 [2, 23] 数値23は9th番目の素数なので2、空の配列と23で置き換え[9]ます。配列は次のようになります。 [[], [9]] の主な要因9は3および3ですので、 [[], [3, 3]] 両方について同じことを行います3: [[], [[2], [2]]] そして最後に: [[], [[[]], [[]]]] 今、それをエンコードするために、それぞれの開いている括弧をで置き換え1、それぞれの閉じている括弧を0で置き換えて1から、すべての終了ゼロを削除し、最後から1をドロップします。これは2進数です。上記の例を使用して: [ ] [ [ [ ] ] [ [ ] ] ] | | | | | | | | | | | | | | …

10
Rationalsの内積を見つける
私は友人の家に夕食に行って、彼らは「素因数ベクトル空間」のアイデアを提案しました。この空間では、正の整数はベクトルとして表現され、ベクトルのn番目の要素はn番目の素数が数を分割する回数になります。(これは、ベクトルに無限の数の項があることを意味することに注意してください。)たとえば、20は 2 0 1 0 0 0 ... その素因数分解は2 * 2 * 5であるためです。 素因数分解は一意であるため、各数値は1つのベクトルに対応します。 エントリをペアごとに追加することで、ベクトルを追加できます。これは、関連付けられている数値を乗算するのと同じです。また、スカラー乗算を行うこともできます。これは、関連する数値を累乗するようなものです。 問題は、逆行列がないため、この空間は実際にはベクトル空間ではないことです。先に進んで逆行列を追加してベクトル空間を閉じると、すべての正の有理数をベクトルとして表現する方法ができました。ベクトルの加算が乗算を表すという事実を保持する場合。そして、自然数の逆数はその逆数です。 たとえば、数20のベクトルは 2 0 1 0 0 0 ... したがって、1/20の端数はその逆です -2 0 -1 0 0 0 ... 我々のような割合に関連したベクトル見つけたい場合は14/15を我々は見つけるだろう14 1 0 0 1 0 0 ... および1/15 0 -1 -1 0 0 0 ... そして、ベクトル加算を実行してそれらを乗算します 1 …

30
私はあなたのために十分ではありませんか?
バックグラウンド: 現在のPerfect Numbersの課題は、数の要因を含む複雑な形式で出力するように求められるため、かなり欠陥があり複雑です。これは、チャレンジの純粋な決定問題の再投稿です。 チャレンジ 任意の標準入力形式で正の整数を指定すると、それが完全かどうかを区別します。 完全数とは、すべての適切な除数の合計に等しい数です(正の除数はそれ自体よりも小さい)。例えば、その約数であるため、完全数であるに合計、ながら、その約数(以来、完全数でない)までの合計、ではありません。6661,2,31、2、31,2,36661212121,2,3,4,61、2、3、4、61,2,3,4,6161616121212 テストケース: Imperfect: 1,12,13,18,20,1000,33550335 Perfect: 6,28,496,8128,33550336,8589869056 ルール メモリや時間の制約がある場合、プログラムはより大きなテストケースを完了する必要はありませんが、より多くのメモリ/時間を与えられれば理論的にはできるはずです。 出力は、許可された出力形式を使用して、2つの異なる一貫した値にすることができます。Perfect / Imperfectを表すものがすぐに分からない場合は、回答で必ず指定してください。

30
素因数を計算する
私たちは持っていた素因数分解の挑戦をしばらく前に、しかし、その挑戦は、ほぼ6歳で、私は新しいもののためにそれの時間を信じているので、やっと、私たちの現在の要件を満たしています。 チャレンジ 入力として1より大きい整数を取り、その素因数のリストを出力または返すプログラムまたは関数を作成します。 ルール 入力と出力は、任意の標準的な方法と標準的な形式で提供されます。 重複する要因を出力に含める必要があります。 出力の順序は任意です。 入力が2未満又は2以上ではありません31 1 - 。 組み込みは許可されていますが、非組み込みソリューションを含めることをお勧めします。 テストケース 2 -> 2 3 -> 3 4 -> 2, 2 6 -> 2, 3 8 -> 2, 2, 2 12 -> 2, 2, 3 255 -> 3, 5, 17 256 -> 2, 2, 2, 2, 2, 2, …

18
素因数の合計
2013年には素因数分解があり3*11*61ます。2014年には素因数分解があり2*19*53ます。これらの因数分解に関する興味深い特性は、2013年と2014年の因数分解に異なる数の素数が存在し、それらの合計が同じ数になることです11+61=19+53=72。 2番目の数の選択された素因数の合計に等しい1つの数の選択された素因数の合計が存在する場合、1より大きい2つの正の整数を入力として受け取り、真理値を返すプログラムまたは関数を記述します。それ以外の場合はfalsey値。 明確化 3つ以上の素因数を使用できます。数のすべての素因数を合計で使用する必要はありません。2つの数から使用される素数の数が同じである必要はありません。 数の因数分解で素数が1を超える累乗に引き上げられたとしても、その数の素数の合計で1回しか使用できません。 1は素数ではありません。 両方の入力数は未満になり2^32-1ます。 テストケース 5,6 5=5 6=2*3 5=2+3 ==>True 2013,2014 2013=3*11*61 2014=2*19*53 11+61=19+53 ==>True 8,15 8=2^3 15=3*5 No possible sum ==>False 21,25 21=3*7 25=5^2 No possible sum (can't do 3+7=5+5 because of exponent) ==>False これはコードゴルフです。標準ルールが適用されます。バイト単位の最短コードが優先されます。

17
無限に多くの素数
ユークリッド以来、私たちは素数が無限にあることを知っています。引数は矛盾によるものです:有限数しかない場合、たとえば場合、は、これらの素数なので、その素因数分解はリストにない新しい素数を生成する必要があります。したがって、有限の素数のみが存在するという仮定は誤りです。p1,p2,...,pnp1,p2,...,pnp_1,p_2,...,p_nm:=p1⋅p2⋅...⋅pn+1m:=p1⋅p2⋅...⋅pn+1m:=p_1\cdot p_2\cdot...\cdot p_n+1 ここで、が唯一の素数であると仮定しましょう。上記のメソッドは、新しい(可能な)プライムとしてを生成します。メソッドを再度適用すると、得られ、次に、次にとなり、両方ともおよびは新しい素数などです。合成数を取得する場合は、最も新しい素数を取得します。これにより、A000945が生成されます。2222+1=32+1=32+1=32⋅3+1=72⋅3+1=72\cdot 3+1=72⋅3⋅7+1=432⋅3⋅7+1=432\cdot 3\cdot 7+1=432⋅3⋅7⋅43+1=13⋅1392⋅3⋅7⋅43+1=13⋅1392\cdot 3\cdot 7\cdot 43+1=13\cdot 139131313139139139 チャレンジ 素数と整数与えられた場合、次のように定義されたシーケンスの番目の項を計算します。p1p1p_1nnnnnnpnpnp_n pn:=min(primefactors(p1⋅p2⋅...⋅pn−1+1))pn:=min(primefactors⁡(p1⋅p2⋅...⋅pn−1+1))p_n := \min(\operatorname{primefactors}(p_1\cdot p_2\cdot ... \cdot p_{n-1} + 1)) これらのシーケンスは、ユークリッドマリンシーケンスとして知られています。 例 以下のためのp1=2p1=2p_1 = 2: 1 2 2 3 3 7 4 43 5 13 6 53 7 5 8 6221671 9 38709183810571 用p1= 5p1=5p_1 = 5(A051308): 1 …

15
幾何学的な挑戦
誰もがジオメトリを愛しています。では、なぜゴルフをコーディングしてみませんか?この課題には、文字や数字を取り入れ、それに応じた形を作ることが含まれます。 入力 入力はの形式になり(shapeIdentifier)(size)(inverter)ます。 しかし、shapeIdentifier、サイズ、およびインバーターは何ですか? 形状識別子は、*s で作成する形状のタイプの識別子です。形状識別子は次のとおりです。 s - 平方 t -三角形 サイズはの間1-20になり、それは図のサイズです。 インバーターは、形状が逆さまになるかどうかであり、a +またはaで示され-ます。注: s3-==(等しい)s3+正方形は対称であるため。ただし、t5-!=(等しくない)t5+。 出力では末尾の空白は問題ありませんが、先頭の空白はそうではありません。 出力例 Input: s3+ Output: *** *** *** Input: t5+ Output: * *** ***** Input: t3- Output: *** * 特記事項 三角形の入力は常に奇数になるため、三角形は常に*上部が1 で終わります。 三角形のサイズは、インバーターの場合は底辺 +のサイズであり、インバーターの場合は上部のサイズです-。
23 code-golf  string  ascii-art  geometry  code-golf  ascii-art  subsequence  fewest-operations  test-battery  code-golf  array-manipulation  bitwise  code-golf  interactive  code-golf  music  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  simulation  code-golf  string  classification  code-golf  sequence  base-conversion  palindrome  code-golf  kolmogorov-complexity  code-golf  date  astronomy  code-golf  sequence  base-conversion  code-golf  geometry  combinatorics  code-golf  string  code-golf  math  array-manipulation  code-challenge  math  code-golf  card-games  code-challenge  array-manipulation  sorting  code-golf  code-golf  math  abstract-algebra  polynomials  code-golf  palindrome  factoring 

23
素因数を見つける
このタスクでは、数値の素因数を計算するプログラムを作成する必要があります。入力は自然数1 <n <2 ^ 32です。出力は、次の形式の数値の素因数のリストです。指数は1の場合、省略する必要があります。素数のみを出力します。(入力が131784であると仮定): 131784 = 2 ^ 3 * 3 * 17 ^ 2 * 19 同じ量の空白を使用する必要はありません。空白は適切な場所に挿入できます。プログラムは、入力があれば10分以内に完了するはずです。最短のキャラクター数のプログラムが勝ちます。

23
アスキーアートオクタゴン
入力整数を指定するとn > 1、n文字で構成される辺の長さのASCIIアートオクタゴンを出力します。以下の例を参照してください。 n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

28
最大の素数指数
整数を指定するとn >= 2、その素因数分解で最大の指数を出力します。これは、OEISシーケンスA051903です。 例 させてくださいn = 144。その素因数分解は2^4 * 3^2です。最大の指数は4です。 テストケース 2 -> 1 3 -> 1 4 -> 2 5 -> 1 6 -> 1 7 -> 1 8 -> 3 9 -> 2 10 -> 1 11 -> 1 12 -> 2 144 -> 4 200 -> 3 500 …

3
64ビット整数の因数分解
書き込みゴルフ STDOUT上の末尾の改行に続く(最後の改行が続く)標準入力から整数を読み取り、出力の素因数は改行で区切らアセンブリプログラムを、。 素因数は特定の順序である必要はありません。1素因数ではありません。 あなたのゴルフ(組み立て後)バイナリが8192バイトに収まらなければなりません。 プログラムは、それぞれ次の入力のいずれかを使用して10回実行することによりスコアリングされます。 8831269065180497 2843901546547359024 6111061272747645669 11554045868611683619 6764921230558061729 16870180535862877896 3778974635503891117 204667546124958269 16927447722109721827 9929766466606501253 これらの数字は、難易度の観点から大まかに分類されています。最初のものは、試行分割によって簡単に解決できるはずです。 この数字のセットに対する最適化は、質問の精神に反します。数字のセットはいつでも変更できます。プログラムは、これらだけでなく、任意の正の64ビット入力番号に対して機能する必要があります。 スコアは、上記の数値を因数分解するために使用されるCPUサイクルの合計です。 GOLFは非常に新しいため、ここにいくつかのポインターを含めます。あなたは読むべきGOLFのすべての命令およびサイクルコストと仕様を。Githubリポジトリのサンプルプログラムにあります。特に、入力/出力を示す階乗のサンプルプログラムを見てください。 を実行して、プログラムをバイナリにコンパイルしますpython3 assemble.py your_source.golf。次に、を使用してプログラムを実行するとpython3 golf.py your_source.bin、サイクルカウントも出力されます。-dフラグを使用--helpして、プログラムの終了時にレジスタの内容の値を確認します- すべてのフラグを確認するために使用します。

5
私の番号はユニークですか
で、この課題我々は要因の木を使用して整数すべての正をエンコードする方法を学びました。 仕組みは次のとおりです。 空の文字列の値は1です。 (S)ここSで、値がSの式は、S番目の素数に評価されます。 ABここでAおよびBは、それぞれAおよびBの値を持つ任意の式の値はA * Bです。 たとえば、7を表す場合は、次のようにします。 7 -> (4) -> (2*2) -> ((1)(1)) -> (()()) この方法を使用すると、すべての整数を表すことができます。実際、いくつかの数値は複数の方法で表すことができます。乗算は可換であるため、10は両方 ((()))() そして ()((())) 同時に、いくつかの数値は1つの方法でしか表現できません。例として8を取り上げます。8は次のようにしか表現できません ()()() そして、私たちの原子はすべて同じなので、commutivityを使用して原子を再編成することはできません。 それで、今の質問は「どの数字が一方向でしか表現できないのか?」です。最初の観察は、私がそこに戻り始めたばかりのものです。完全な力にはいくつかの特別な特性があるようです。さらに調査すると、36を見つけることができます。これは6 2が完全な力ですが、複数の表現があります。 (())()(())() (())()()(()) ()(())()(()) ()(())(())() ()()(())(()) また、6はすでに再配置可能であるため、これは理にかなっています。したがって、6から作成する数も再配置可能でなければなりません。 これでルールができました: 数値は、一意の表現を持つ数値の完全な力である場合、一意の表現を持ちます。 この規則は、素数が一意であるかどうかを判断するために、合成数が一意であるかどうかの判断を減らすのに役立ちます。この規則ができたので、何が素数を一意にするのかを理解したいと思います。これは実際にはかなり自明です。一意の番号を取得して括弧で囲む場合、結果は一意である必要があります。逆に、nに複数の表現がある場合、n番目の素数には複数の表現が必要です。これにより、2番目のルールが生成されます。 N番目の素数をしている場合にのみ場合は一意であるnがユニークです。 これらのルールは両方とも再帰的であるため、ベースケースが必要になります。最小の一意の番号は何ですか?()空の文字列である1 だけがさらに小さく、一意であるため、2と言いたくなるかもしれません。 1は一意です。 これらの3つのルールを使用して、数値に一意の因子ツリーがあるかどうかを判断できます。 仕事 あなたはそれが来るのを見たかもしれませんが、あなたの仕事は正の整数を取り、それが一意であるかどうかを判断することです。この計算を行うプログラムまたは関数を作成する必要があります。2つの可能な値のいずれかを出力する必要があります。これらの値は自由ですが、入力が一意の場合は「yes」を、そうでない場合は「no」を出力する必要があります。 回答はバイト単位でスコアリングする必要があり、バイト数は少ない方が良いでしょう。 テストケース 最初のカップルの一意の番号は次のとおりです。 1 2 3 4 5 …

21
過剰を決定する
超過剰数は整数であり、nは、上部との比に向かう新しいセットその除数サム関数 σを。換言すれば、n個全ての正の整数のための有り余る場合にのみ、あるX未満であるN。 σ(n)n>σ(x)xσ(n)n>σ(x)x\frac{\sigma(n)}n>\frac{\sigma(x)}x いくつかの値の場合: n σ(n) σ(n)/n superabundant 1 1 1.0000 yes 2 3 1.5000 yes 3 4 1.3333 no 4 7 1.7500 yes 5 6 1.2000 no 6 12 2.0000 yes 7 8 1.1429 no 8 15 1.8750 no 9 13 1.4444 no これらの長いリスト(テストケース用)は、OEIS A004394にあります。 非常に推奨されるネガティブテストケースの1つ(インタープリターが処理できる場合)は360360です。 チャレンジ プログラムは、単一の正の整数を受け取り、その整数が過剰であるかどうかを表す真偽値を出力する必要があります。 これはcode-golfであるため、バイト単位の最短回答が優先されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.