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

素数の特定と操作に関する課題

9
8675309までのn番目ごとの素数
混乱している場合は、こちらをお読みください。 チャレンジ: このコードゴルフの目標は、数に基づいてい8675309ます... 目標は、2から8675309までのすべての素数を出力し、2から開始して、8つの素数をスキップし、6をスキップし、7をスキップすることです。基本的に、次のシーケンス8675309。9に達したら8に循環します。 出力: 2 29 (8番目をスキップして10番目のプライムに到達) 59 (6番目をスキップして17番目のプライムに到達) 97 (7をスキップして25番目のプライムに到達) 例:(PHPのような疑似コードで、$primeはすべての素数を含む配列です。) $tn=1; $c=1; $na=array(8,6,7,5,3,0,9); l: output($prime[$tn]); if ($prime[$tn]>=8675309) {exit(8675309)}; $c+=1; if ($c>=8) {$c=1}; $tn+=$na[$c]; goto l; スキップと言うとき 8つの素数を、私は#1素数から#10素数に移動することを意味します(間にある8をスキップします)。 各番号は改行する必要があります。 0in 8675309に到達したら、何もスキップせずに次の素数を出力するだけです。 これはコードゴルフなので、最短のコード(バイト単位)が優先されます。

3
アイゼンシュタインの素数を数える
前書き アイゼンシュタイン整数は、次の形式の複素数です。 a+bω a,b整数はどこにあり、 ω = e^(2πi/3) アイゼンシュタイン整数は、複素平面で三角格子を形成します。 2つの非単位の積(1、-1、ω、-ω、ω^ 2または-ω^ 2ではない)として記述できない場合、アイゼンシュタイン整数z=a+bωは素数であると言います プログラム 入力:自然数n。 出力:フォームであるアイゼンシュタインの素数の数a+bωのためには、a,bに等しいかまたはそれ以下(ゼロを含む)である自然数n テストケース 0→0 1→0 2→5 3→9 4→13 5→20 得点 これはcode-golfなので、最小バイト数が優先されます

7
再帰的な素因数分解
あなたの仕事は、入力から取られた数値の素因数を取り(1に等しいすべての指数を省略)、次にすべての指数の素因数を取り、合成数がなくなるまで続けます。そして結果を出力します。 私が求めていることを少し明確にするために、これを行うjavascriptプログラムを次に示しますが、782バイトではまだ十分にゴルフされていません。 var primes=[2,3]; function nextPrime(){ var n=2; while(isAMultipleOfAKnownPrime(n)){n++} primes.push(n); } function isAKnownPrime(n){return primes.indexOf(n)!=-1}; function isAMultipleOfAKnownPrime(n){ for(var i=0;i<primes.length;i++)if(n%primes[i]==0)return true; return false; } function primeFactorize(n){ while(primes[primes.length-1]<n)nextPrime(); if(isAKnownPrime(n)||n==1)return n; var q=[];while(q.length<=n)q.push(0); while(n!=1){ for(var i=0;i<primes.length;i++){ var x=primes[i]; if(n%x==0){q[x]++;n/=x} } } var o=""; for(var i=2;i<q.length;i++){ if(q[i]){if(o)o+="x";o+=i;if(q[i]>1){o+="^("+primeFactorize(q[i])+")"}} } return o; } alert(primeFactorize(+prompt())); 演算の順序をできるだけ明確にして、各レベルで素因数を昇順にソートする必要があります。 フォーマットされたmathprintまたは有効なlatexコードとして出力を生成すると、-50バイトのボーナスが得られます。

3
自己短縮型プライムテスター
それに取り掛かりましょう。あなたの課題は、入力に応じて次のことを行うプログラムを作成することです。 入力が数値の場合、その数値が素数の場合は「Prime」を出力し、その数値が素数でない場合は「Not Prime」を出力します。数は1より大きいと想定できます。 入力が2つの数値の場合、最初の数値(両端を含む)と2番目の数値(両端を含まない)の間のすべての素数を出力します。最初の数は2番目の数よりも小さいと想定できます。 ここで本当の課題が発生します。入力がない場合、プログラムは元のプログラムとまったく同じことをする短いバージョンのプログラム自体を出力する必要があります。プログラムは、ファイルまたはWebからの読み取りを許可されていません。新しいプログラムもこれを実行できるはずです。少なくとも5世代は機能するはずです。新しいプログラムは、最初のプログラムと同じ言語である必要はありません。 得点: スコアは、提出物の最初の5世代のバイト数の合計に等しくなります(提出物自体が世代1です)。新しいコードが最初のプログラムにハードコードされている場合は、スコアに1.5を掛けます。 最も低いスコアが勝ちます。(採点システムに何らかの欠陥がある場合は、コメントでお知らせください)

1
回文の素数
私はタスクを解決しています、ここで: 入力: 整数としての数値。 出力: 整数として最も近い大きい回文素数。 私は感謝のヒントを私の解決策を短くする方法。または、アプローチの変更が有益であるかどうかの指示。 golf=lambda l,r=range:next(x for x in r(10**6)if(x==int(`x`[::-1]))&all(x%d for d in r(2,x))and x>l) 回文: x==int(`x`[::-1]) プライム: all(x%d for d in r(2,x))

3
Nまでの素因数分解自然数を昇順でリストします
与えられたnリストに対して、昇順および昇順のすべての自然数の素因数分解。たとえば、= 10の場合、出力は次のようになります。1nn 1: 2: 2^1 3: 3^1 4: 2^2 5: 5^1 6: 2^1 3^1 7: 7^1 8: 2^3 9: 3^2 10: 2^1 5^1 要件: 数値を繰り返し処理して、それぞれを因数分解することはできません。(数値を対数時間で因数分解する方法を知らない限り、パズルを解くのに時間を無駄にすることはないと思います。)これは非効率的です。 出力は上記の例のようになります。各行に、数とその素因数のリスト。 これnは非常に大きくなる可能性があるため、すべての因数分解をメモリに生成し、最後にそれらを並べ替えることは不可能である可能性があることを考慮してください。(ただし、これに違反する賢い解決策がある場合は、それも投稿してください。)

11
最短のコードでn番目のフィボナッチプライムを見つける
課題はかなり単純です。 正の整数nを入力として受け取ります。 nth番目のフィボナッチ素数を出力します。 入力は、関数へのパラメーターとして(および出力は戻り値になります)、またはコマンドラインから取得(およびそこに出力)できます。 注:組み込みの素数検査関数またはフィボナッチ級数ジェネレーターの使用は許可されていません。 幸運を!

18
スクエアフリーのセミプライムカウント
定義 平方のないセミプライムは、2つの異なる素数の積である自然数です。 タスク 自然数が与えられたn場合、に等しいかそれ以下のすべての正方形のないセミプライムを数えますn。 細部 単一の整数パラメーターを受け入れ、そのパラメーター以下の正方形のないセミプライムをすべてカウントする関数またはプロシージャーを記述してください。カウントは、関数呼び出しの戻り値であるか、STDOUTに出力される必要があります。 得点 最も少ない文字数の答えが勝ちます。 同点の場合、次の基準が順番に使用されます。 一番高い人 最高の時間の複雑さ 最悪のスペースの複雑さ 例 f(1) = 0 f(62) = 18 f(420) = 124 f(10000) = 2600

27
セクシーな素数を生成する
セクシーな素数は(n, m)、nとのm両方が素数であるのようなペアですm = n + 6。 整数を取る関数を作成し、0からその整数までの素数をチェックして、配列の配列を返す必要があります。 たとえば、listSexy(30)戻り値[[5,11], [7,13], [11,17], [13,19], [17,23], [23,29]]または同等のものでなければなりません。 これはコードゴルフなので、バイトカウントが最短のプログラムが勝ちます!

6
コードチャレンジ:最も近いプライム
チャレンジ このタスクでは、整数Nが与えられます。整数に最も近い素数を出力する必要があります。 数値が素数の場合は、数値を出力します。 入力Nは1行で指定され、入力はEOFで終了します。入力の数は10000の値を超えません。 課題は、最速のソリューションを実装して、最大10000の値を可能な限り速く処理できるようにすることです。 入力 299246598 211571591 71266182 645367642 924278231 出力 299246587 211571573 71266183 645367673 924278233 制約 Nが2 ^ 64未満 ソリューションでは、指が4096バイトを超えないように注意してください。 素数のための組み込みのものを使用していない限り、任意の言語を使用できます。 最速のソリューション、最も効率的な時間の複雑さの勝利 追加: これは、同じ問題の簡単なバージョン(N <2 ^ 31)なので、実際の問題を解決する前に、小さなケースでアプローチを確認してみてください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.