タグ付けされた質問 「number-theory」

数論は、主に正の整数である数の性質と関係を含みます。

15
私はピライ素数ですか?
A Pillaiさん素数が素数であるpppいくつかの肯定が存在するためmmmそのような(m!+1)≡0(mod p)(m!+1)≡0(mod p)(m! + 1) \equiv 0 \:(\text{mod } p)p≢1(mod m)p≢1(mod m)p \not\equiv 1\:(\text{mod }m) 換言すれば、整数、それがある場合Pillaiさんの素数である素数別の正の整数が存在する場合、ような階乗の、プラスで割り切れる及び場合で割り切れない。pppmmmmmm111pppp−1p−1p - 1mmm 入力として正の整数を指定し、それがピライ素数であるかどうかを判断します。ピライ素数の配列はOEIS A063980です。 たとえば、はピライ素数です。232323 これは素数であり、2つの要素しかありません。 m=14m=14m = 14およびは上記の条件を満たす:およびは分割しない。およびはも分割しません。23 ∣ (14 !+ 1 )14 22 23 ∣ (18 !+ 1 )18 22m=18m=18m = 1823∣(14!+1)23∣(14!+1)23 \mid (14! + 1)14141422222223∣(18!+1)23∣(18!+1)23 \mid (18! + 1)181818222222 テストケース …

9
ザイデルトライアングル
ザイデル三角形は、パスカルの三角形に似た数学的構造であり、ベルヌーイ数との関係で知られています。 最初の数行は次のとおりです。 1 1 1 2 2 1 2 4 5 5 16 16 14 10 5 16 32 46 56 61 61 各行は次のように生成されます。 行番号が偶数(1から始まる)の場合: 前の行の最初のアイテムを停止します 次のすべてのアイテムは、前のアイテムとその上のアイテムの合計です 最後のアイテムを複製する 行番号が奇数の場合: 前の行の最後のアイテムを停止する 後方に行くと、各アイテムは前のアイテムとその上のアイテムの合計です 現在の最初のアイテムを複製します。 基本的に、三角形をジグザグパターンで作成します。 1 v 1 > 1 v 2 < 2 < 1 v 2 > 4 > 5 …

1
9の倍数の正規表現
9の倍数を認識する有限状態マシンを記述するのは簡単です。数字の合計(mod 9)を追跡し、次に受け入れられる数字を追加します。このようなFSMには9つの状態しかなく、非常に簡単です!FSMの認識可能性と正規言語の同等性により、9の倍数の正規表現があります。しかし、そのような正規表現はおそらく...非常に...長いです。のように、おそらくギガバイトのオーダーで。 https://www.quaxio.com/triple/には、3の倍数の有効な例があります。ページの下部で、著者は、「手作業で最適化された」ソリューションを提供します。正規表現へのFSM。 チャレンジ: 9の倍数を検出するには正規表現を作成する必要があります。このような正規表現は非常に長いことが予想されるため、正規表現を出力できるプログラムを提供するようお願いします。(正規表現全体を提供したい場合は、おそらく他の場所でホストし、ここにリンクしてください!) プログラムの出力の正確な文字数を教えてくれる必要があります。つまり、ある長さまですべての正規表現を試行するプログラムは、動作するものが見つかるまで、十分に速く実行しない限り受け入れられません。最後まで実行して、結果の正規表現の長さを教えてください! もちろん、プログラムの長さに基づくのではなく、最短の出力正規表現を使用するためです。正規表現は私が求めている「プログラム」であり、ここで便利に送信するには長すぎるので、このコードゴルフにタグを付けています。 ルール: 入力には、に一致する文字のみが含まれます[0-9]*。 正規表現は9の倍数と一致する必要がありますが、それ以外は一致しません。完全に数字0〜9で構成されておらず、無効な入力であるケースは、希望どおりに一致または失敗する可能性があります。 DFAで簡単に認識されるという動機を考えると、結果の正規表現は、実際にはより理論的な用語での正規表現、つまり、正規言語が閉じられている演算子のみである必要があります。正確に言うと、許可される唯一のもの: リテラル、文字範囲([ab]、[a-f]、[^k])、クリーネ閉包(*)、アンカー(^および$)、括弧を介して、交互(グループ化|)、任意の用語(?)、一又は、複数の用語(+)、先読み((?=))、負の先読みを((?!))、 lookbehinds( (?<=))、負lookbehinds( (?<!)(のように)、条件文https://www.regular-expressions.info/conditional.html - (?(?=test)then|else))、及び有界長の後方参照(下記参照)。 許可されていないものの例: 任意の長さの後方参照、前方参照、再帰、サブルーチン、ループ構造、実行可能コード、「eval」のバリエーション、または文字列を算術値にキャストするための組み込み構造。 制限された長さのバインディング文字列を持つことを示すことができる後方参照は、有限状態で保存でき、言語の規則性を変更しないため、受け入れられます。たとえば(..2.[3-5])4\1.\1、キャプチャグループにバインドされた長さがあるため、正規表現は受け入れられ\1ます。これは通常の構造です。(2*)0\1キャプチャされたグループは有限状態で保存できないため、このような構造は受け入れられません。 正規表現は、必要に応じて、余分な先行ゼロを含む整数を自由に受け入れたり拒否したりできます。ただし、文字列"0"は受け入れられる必要があります。

9
巡回差分セットの検証
循環差分セットは、一意のプロパティを持つ正の整数のセットです。 ましょうnセットで最大の整数になります。 Let rは、0より大きく、以下の任意の整数(セット内にある必要はありません)n/2です。 してみましょうkことが解決策の数にとセットの任意のメンバーです。各ソリューションは順序ペアです。(また、多くの言語での実装とは異なり、このバージョンのモジュロは、追加することで負の数を正にすることに注意してください。)(b - a) % n = rab(a,b)n 最後に、これが循環差分セットである場合にのみ、の値はのk選択に依存しませんr。つまり、すべての値はr、上記の一致に対して同じ数の解を与えます。 これは、次の例で説明できます。 Cyclic difference set: {4,5,6,8,9,11} 0 < r <= 11/2, so r = 1,2,3,4,5 r=1: (4,5) (5,6) (8,9) r=2: (4,6) (6,8) (9,11) r=3: (5,8) (6,9) (8,11) r=4: (4,8) (5,9) (11,4) since (4-11)%11=(-7)%11=4 r=5: (4,9) (6,11) (11,5) の各値にrは同じ数の解(この場合は3)があるため、これは循環差分セットです。 入力 …

30
一意の素数はいくつですか?
自然数を表す1つの方法は、素数の指数を乗算することです。たとえば、6は2 ^ 1 * 3 ^ 1で表すことができ、50は2 ^ 1 * 5 ^ 2(^は指数を表す)で表すことができます。この表現の素数の数は、他の方法と比較して、この表現方法を使用する方が短いかどうかを判断するのに役立ちます。しかし、これらを手動で計算したくないので、それを行うためのプログラムが必要です。ただし、家に帰るまでプログラムを覚えておく必要があるため、できるだけ短くする必要があります。 あなたのタスク: プログラムまたは関数を作成して、この数値表現に異なる素数がいくつあるかを判断します。 入力: 通常の方法で取得される、1 <n <10 ^ 12のような整数n。 出力: はじめに概説したように、入力を表すために必要な個別の素数の数。 テストケース: 24 -> 2 (2^3*3^1) 126 -> 3 (2^1*3^2*7^1) 1538493 -> 4 (3^1*11^1*23^1*2027^1) 123456 -> 3 (2^6*3^1*643^1) これはOEIS A001221です。 得点: これはcode-golfで、バイト単位の最低スコアが勝ちです!

14
ウィルソン数を計算する
正の整数nが与えられた場合、n 番目の ウィルソン数 W(n)を計算します。 そして、E = 1であればN原始根モジュロを有するN、そうでなければ、E = -1。つまり、整数xが存在しない場合(1 < x < n-1およびx 2 = 1 mod n)、nにはプリミティブルートがあります。 これはコードゴルフなので、入力整数n > 0 に対してn 番目のウィルソン数を計算する関数またはプログラムの最短コードを作成します。 1ベースまたは0ベースのインデックスを使用できます。最初のn個のウィルソン数を出力することもできます。 これは、OEISシーケンスA157249です。 テストケース n W(n) 1 2 2 1 3 1 4 1 5 5 6 1 7 103 8 13 9 249 10 19 11 329891 …

19
フィボナッチ化された除数を合計します!
有名なフィボナッチ数列はF(0) = 0; F(1) = 1; F(N+1) = F(N) + F(N-1)(このチャレンジでは0から始まります)です。 あなたの挑戦:考えるとnは、出力のすべての合計Dすべての除数のためのフィボナッチ数番目日間のN番目のフィボナッチ数。より正式な表記を希望する場合は、 入力:正の整数n 出力:合計 たとえば、検討してくださいn=4。F(4) = 33の約数は1と3なので、出力はになるはずですF(1) + F(3) = 1 + 2 = 3。 用n=6、F(6) = 8および8の除数1、2、4、8、であるので、出力されますF(1) + F(2) + F(4) + F(8) = 1 + 1 + 3 + 21 = 26。 テストケース: 1 => 1 2 => …

15
最大相互共素因数分解
定義 唯一の正の公約数がの場合、2つの数値は互いに素です1。 数字のリストは、そのリスト内の数字のすべてのペアが互いに素である場合、相互に素です。 数の因数分解 n、積がである数値のリストですn。 仕事 正の数nを指定するnと、次を含まない最大長の相互に素な因数分解を出力します1。 例 の場合n=60、答えは[3,4,5]で3*4*5=60あり、それ以外の互いに素な因数分解1は長さが以上であるため3素因数分解は、分解の長です。 ルールと自由 適切な入出力形式を使用できます。 出力リストのエントリをソートする必要はありません。 テストケース n output 1 [] 2 [2] 3 [3] 4 [4] 5 [5] 6 [2, 3] 7 [7] 8 [8] 9 [9] 10 [2, 5] 11 [11] 12 [3, 4] 13 [13] 14 [2, 7] 15 [3, 5] …

8
到達可能な番号
定義 オイラーファイ関数(aka totient function):正の数を取り、特定の数と互いに素である特定の数より小さい正の数を返す関数。として示されφ(n)ます。 到達番号:正の整数が存在する場合x、その結果をφ(x) == n、その後nで到達可能。 仕事 与えられた正の整数が到達可能かどうかを判断する関数/プログラムを作成します。 入力 妥当な形式の正数。数は言語の能力の範囲内であると想定できます。単項入力が受け入れられます。 出力 到達可能な数値用と到達不能な数値用の2つの一貫した値。2つの値は、一貫している限り、何でもかまいません。 テストケース 以下の到達可能な番号100は次のとおりです。 1、2、4、6、8、10、12、16、18、20、22、24、28、30、32、36、40、42、44、46、48、52、54、56、58、 60、64、66、70、72、78、80、82、84、88、92、96 (OEISのA002202) ルール 標準の抜け穴が適用されます。 勝利基準 これはcode-golfです。最も少ないバイト数での送信が優先されます。 参照資料 オイラーファイ関数 OEIS A002202

1
難読化された整数表記
編集:この質問の新しいバージョンをmeta-golf近日中に投稿します。おしゃべり! 編集#2:チャレンジを更新するのではなく、開いたままにします。meta-golfバージョンは、ここに提供されています:/codegolf/106509/obfuscated-number-golf バックグラウンド: ほとんどの数字は、6つの異なるシンボルでのみ記述できます。 e (オイラーの定数) - (否定ではなく減算) ^ (べき乗) ( ) ln (自然対数) たとえば、i次の式を使用して虚数を変換できます。 (e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e))))) ゴール: k合理的な手段で整数が与えられた場合、それらの6つのシンボルのみを使用して、その数の可能な限り短い表現を出力します。 例: 0 => "e-e" 1 => "ln(e)" 2 => "ln(ee)" // Since - cannot be used for negation, this is not a valid solution: // ln(e)-(-ln(e)) -1 => "e-e-ln(e)" ノート: 終了括弧は、文字の合計数にカウントされます。 ln( …

12
Linusシーケンスを生成
定義 OEIS A006345の説明から: 見つけるa(n)には、1またはのいずれかを検討してください2。それぞれについて、最も長い繰り返しの接尾辞を見つけます。つまり、それぞれについてa(n)=1,2、sシーケンスがでa(1),...,a(n)終わるプロパティを持つ最も長いシーケンスを見つけますss。そのような接尾辞が短くなる数字を使用します。a(1) = 1。 完成した例 a(1)=1。 の場合a(2)=1、1 1最後から2倍になった部分文字列が最も長いシーケンスになり1ます。場合はa(2)=2代わりに、それは空のストリングになります。したがってa(2)=2。 ときn=6、我々は、のいずれかを選択1 2 1 1 2 1して1 2 1 1 2 2。最初の選択肢で1 2 1は、末尾から連続して2倍になります。2番目の選択肢では、2代わりになります。したがって、a(6)=2。 ときn=9、我々は、のいずれかを選択1 2 1 1 2 2 1 2 1 して1 2 1 1 2 2 1 2 2。最初の選択肢では、最長の2倍連続部分文字列はですが2 1、2番目の選択肢で1 2 2は、最後に連続して2倍になります。したがってa(9)=1。 仕事 与えられたn、戻りa(n)ます。 スペック n ポジティブになります。 1インデックスの代わりに0インデックスを使用できます。その場合は、回答にその旨を明記してください。また、その場合、nすること0もできます。 …

14
ウォルステンホルムの定理を検証する
定義 ウォルステンホルムの定理は次のように述べています。 ここで aand bは正の整数でpあり素数であり、大きな括弧は二項係数です。 仕事 それを確認するには、3つの入力を与えられます:a、b、p、どこaおよびb正の整数であり、p素数です。 計算: ここで aand bは正の整数でpあり素数であり、かっこは二項係数です。 スペック 以来: ここで、かっこは二項係数です。 あなたはそれを仮定することができます 2b <= a テストケース a b p output 6 2 5 240360 3 1 13 3697053 7 3 13 37403621741662802118325

5
nに合計する必要がある正方形、立方体、4乗などはいくつですか?
非負の整数nと整数が与えられp >= 2ます。を取得するには、いくつかのp累乗(p=2正方形をp=3意味し、立方体を意味する)を一緒に追加する必要がありますn。これは常に非負nではありませんが、必要なp(正の整数の)べき乗の多くはわかりません。 これがあなたの仕事です。p合計することができる最小のべき乗の数を見つけますn。 例 >>> min_powers(7, 2) 4 # you need at least four squares to add to 7 # Example: (2)^2 + (1)^2 + (1)^2 + (1)^2 = 4 + 1 + 1 + 1 = 7 >>> min_powers(4, 2) 1 # you need at least one square …

6
ライリーの定理
S.ライリーは1825年に定理に従って証明しました。 すべての有理数は、3つの有理立方体の合計として表すことができます。 チャレンジ いくつかの有理数を考えるとr∈Qr∈Qr \in \mathbb Q 3つの有理数見つけ、B 、C ∈ Qは、そのようなことを、R = A 3 + B 3 + C 3。a,b,c∈Qa,b,c∈Qa,b,c \in \mathbb Qr=a3+b3+c3.r=a3+b3+c3.r= a^3+b^3+c^3. 詳細 提出は、十分な時間とメモリが与えられたすべての入力に対してソリューションを計算できる必要があります。つまり、たとえば、2つの32ビットintが分数を表すだけでは不十分です。 例 305230717280142=39829338766813−6366005495153−39775055545463=607029013173+239612924543−619227128653=(12)3+(13)3+(14)3=03+03+03=(12)3+(23)3+(56)3=(1810423509232)3+(−1495210609)3+(−25454944)330=39829338766813−6366005495153−3977505554546352=607029013173+239612924543−6192271286533071728=(12)3+(13)3+(14)30=03+03+031=(12)3+(23)3+(56)342=(1810423509232)3+(−1495210609)3+(−25454944)3 \begin{align} 30 &= 3982933876681^3 - 636600549515^3 - 3977505554546^3 \\ 52 &= 60702901317^3 + 23961292454^3 - 61922712865^3 \\ \frac{307}{1728} &= \left(\frac12\right)^3 + \left(\frac13\right)^3 …

12
すべての
前書き 数論では、その素因数がすべて最大kであるとき、数はkkk平滑であると言います。ので、例えば、2940 7滑らかで2940 = 2 2 ⋅ 3 ⋅ 5 ⋅ 7 2。kkk2940=22⋅3⋅5⋅722940=22⋅3⋅5⋅722940=2^2\cdot3\cdot5\cdot7^2 ここでは、kkk -smoothのペアを、両方がkkk -smoothである2つの連続した整数として定義します。7平滑対の例は、あろう(4374,4375)(4374,4375)(4374,4375)ので、4374=2⋅374374=2⋅374374=2\cdot3^7及び4375=54⋅74375=54⋅74375=5^4\cdot7。楽しい事実:これは実際には最大の7スムーズペアです。 ストーマーはことを1897年に証明したすべてのためkkk、有限個しか存在しkkk -smoothペア、そしてこの事実は、次のように知られているストーマーの定理。 チャレンジ あなたの仕事は、素数入力kkk与えられると、すべてを出力または返すプログラムまたは関数を書くことですkkk滑らかなペアを重複せず任意の順序で(ペア内の順序は関係ありません)ことです。 素数pppおよびqqqでは、p&lt;qp&lt;qp<qであると仮定すると、すべてのppp -smoothペアもqqq -smoothペアです。 サンプルI / O Input: 2 Output: (1, 2) Input: 3 Output: (1, 2), (2, 3), (3, 4), (8, 9) Input: 5 Output: (1, 2), (2, 3), (3, …

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