ホームページ > 記事 > ウェブフロントエンド > 素数を見つけるCSS
CSS 素数の検索
素数とは、1 とそれ自体でしか割り切れない自然数を指します。プログラミングでは、素数を見つけることは一般的な要件であり、プログラム効率の重要な要素です。
最近、興味深い質問が生じました。CSS を使用して、特定の数以下の素数をすべて見つけるにはどうすればよいでしょうか?
この質問を初めて聞いたとき、あなたは混乱するかもしれません。結局のところ、CSS は Web ページを美しくするために使用されるスタイル シート言語であり、CSS の構文や機能は数学的な演算とは何の関係もなく、論理計算もサポートしていません。
ただし、だからといってこの問題について議論することが妨げられるわけではありません。実際、CSS は、ページをレンダリングするときに、いくつかの特別なテクニックを使用して、一見不可能に見えるタスクを実行することもできます。
次に、CSS を使用して、特定の数以下の素数をすべて検索する方法を見てみましょう。
ステップ 1: ターゲット数を決定する
まず、必要な素数の範囲を決定する必要があります。この記事では、100 を例として取り上げます。つまり、100 以下の素数をすべて見つけます。
ステップ 2: 数値のリストを生成する
次に、CSS を使用して数値のリストを生成する必要があります。 CSS はループや論理的判断をサポートしていないため、ループのような効果を実現するには、CSS のいくつかの特別なプロパティを使用することしかできません。
ここでは、CSS カウンター プロパティを使用しています。これは、数値シーケンスを自動的に生成するのに役立ちます。 2 から 100 までの一連の数値を生成するには、CSS で 2 から始まり、毎回 1 ずつ増加するカウンターを設定する必要があります。カウンターの初期値と最大値はそれぞれ 2 と 100 に設定されます。コードは次のとおりです。
body { counter-reset: counter 2; }
このコードの意味は、body 要素に counter という名前のカウンターを設定し、初期値は 2 です。
次に、各数値要素にカウンターを設定する必要があります。 2 から 100 までの一連の数値を生成するには、次のメソッドを使用できます。
.numbers { counter-increment: counter; }
このコードの意味は、counter という名前のカウンタの値を、毎回 1 ずつ加算して増加させることです。
この時点で、一連の数値の計算機が生成されました。数値のリストは CSS 疑似要素 ::before を通じて実装できます。前のコードでは、本文にnumbersという名前のクラスを設定し、numbersの各要素に子要素を追加しました。コードは次のとおりです。
.numbers::before { content: counter(counter) ' '; }
このコードの意味は、number 要素の前に ::before 疑似要素を追加して、カウンターの現在の値 (数値) を表示することです。
上記の CSS コードを使用すると、2 から 100 までの数値シーケンスを生成できます。
ステップ 3: 素数をスクリーニングする
これで、2 から 100 までの一連の数値が生成されましたが、これには多くの非素数が含まれています。素数を除外するには、CSS 属性セレクターを使用できます。
属性セレクターは、属性名と属性値を指定することで、一致する要素を選択できます。ここでは、数値要素の data-prime 属性を素数として指定でき、要素が素数であることを示します。コードは次のとおりです。
.numbers[data-prime='prime'] { color: red; }
素数の定義によれば、数値は、その数値より小さい素数で割り切れない場合にのみ素数となります。現在の数値が n であると仮定すると、属性セレクターを使用して、n より小さいすべての素数を見つけることができます。コードは次のとおりです。
.numbers:not([data-prime='not-prime']):not(:nth-of-type(1)):before { content: counter(counter) ' '; display: none; }
このコードの意味は次のとおりです。 現在の数値要素が非素数でない場合 (つまり、その数値より小さい素数で割ることはできません)、それが数値シーケンスの最初の要素ではない場合 (つまり 2)、その数値を ::before 擬似要素で非表示にします。
素数を強調表示するために、素数に赤色を設定することもできます。コードは次のとおりです。
.numbers[data-prime='prime'] { color: red; }
ステップ 4: 結果の表示
最後に、最終結果を確認するには、番号シーケンスを持つコンテナ要素を HTML に追加するだけです。コードは次のとおりです。
<div class="numbers" data-prime="prime">2</div> <div class="numbers" data-prime="prime">3</div> <div class="numbers" data-prime="prime">4</div> <div class="numbers" data-prime="prime">5</div> ...
上記のコードを実行すると、100 以下のすべての素数がブラウザに表示されます。
結論
CSS を使用して素数を見つけるというのは奇妙な質問ですが、これは CSS の威力を示しています。 counter 属性と属性セレクターを使用すると、JavaScript を使用せずに一連の数値を生成し、素数をフィルター処理できるプログラムを実装できます。
もちろん、この方法は面倒で効率も悪くなります。比較的大きな素数を見つけたい場合は、JavaScript などのコンピューター言語を使用することをお勧めします。ただし、CSS アニメーションなどの特殊な場合には、この手法を使用すると便利です。
つまり、プログラミング自体は探求のプロセスであり、プログラミング言語が異なれば、異なる特性、長所、短所があります。これらの言語の機能の使い方を学ぶことによってのみ、その言語の力を真に解き放つことができます。
以上が素数を見つけるCSSの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。