区間内の最大公約数
x と y が 2 つの数値であると仮定します。この場合、y を x で割ったときに 0 の余りが返される場合、x は y の約数であると言われます。区間内で発生する最大の約数は、区間内の最大数の要素の約数です。
###問題文###間隔 [a, b] を指定します。 a と b (「1」以外) を含む範囲で現れる最大の約数を求めます。すべての約数が同じ回数出現する場合は 1 を返します。
例 1
リーリー リーリー 説明- 2 の約数 = {1, 2}、3 の約数 = {1, 3}、4 の約数 = {1, 2, 4}、5 の約数 = {1, 5}。 2 は最頻約数です。 例 2
リーリー リーリー 説明- 2 の約数 = {1, 2}、3 の約数 = {1, 3}、4 の約数 = {1, 2, 4}、5 の約数 = {1, 5}。 2 は最頻約数です。 方法 1: ブルート フォース クラッキング
この問題を解決する強引な方法は、区間内のすべての数値のすべての約数を見つけて、それらを出現回数とともにマップに保存することです。
###アルゴリズム###プロセス除数(数値)
i = 1 ~ n1/2 の場合 1
If num%i == 0
If num/i == i
i がマップにない場合は、(i, 1)
を挿入します
そうでない場合はマッピング[i]
######他の######
i がマップにない場合は、(i, 1)
を挿入します
そうでない場合はマッピング[i]
num/i がマップにない場合は、(num/i, 1)
を挿入します。
その他のマップ[num/i]
-
maxDivisors (a, b) の処理
n = a ~ bの場合
除数 (n)
map.erase(1)
除数 = 1、カウント = int_min
マップ内の各要素について
if it.value > count
カウント = it.value
除数 = it.key
-
例: C 実装
次のプログラムでは、divisors() 関数で各数値の約数を求め、maxdivisor() 関数で最大の約数を求めます。 -
リーリー
###出力###
リーリー
時間計算量 - O(n3/2)。区間内の数値ごとに、約数を見つけるために計算量 O(n1/2) のループが実行されるためです。
空間の複雑さ - O(n)、マップ空間。
方法 2
上記の方法は、除数が出現するたびにマップを埋める時間を短縮することでさらに最適化できます。各数値の約数を見つける代わりに、間隔の下限と上限を計算することで、間隔内の各約数の出現を知ることができます。
間隔 [2, 5] を例として考えてみましょう。
可能な約数のセットは 1 ~ 5 です。したがって、1 = 5/1 - 2/1 1 = 4 が発生します。 2 = 5/2 - 2/2 1 = 2 のようです。 3 = 5/3 - 2/3 = 1 のようです。 4 = 5/4 - 2/4 = 1 のようです。 5 = 5/5 - 2/5 = 1 のようです。
上記は次のように形式化できます。
下限%除数 == 0の場合、occ = 上限/除数 - 下限/除数 1その他 occ = 上限/除数 - 下限/除数
###アルゴリズム###
maxDivisor (a, b) の処理i = 2からbの場合 If a%i == 0 回数 = b/i - a/i 1 ######他の######
- 回数 = b/i - a/i
- map.insert(i, 回)
- 除数 = 1、カウント = int_min
- マップ内の各要素について
- if it.value > count
- カウント = it.value
- 除数 = it.key
- 例: C 実装
- 方法 3
- サイズが 1 より大きい区間では、数値の半分 (すべての偶数) が約数として 2 を持ちます。
- maxDivisors (a, b) の処理
例: C 実装
次のプログラムでは、すべての偶数が約数として 2 を持つという観察を実装します。
リーリー ###出力### リーリー ###結論は###
つまり、区間内の最大の約数を見つけるには、上記の方法を使用できます。時間範囲は O(n3/2) から O(1) で、空間範囲は O(n ) から O(1).以上が区間内の最大公約数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









関数マクロ定義によりコードが簡素化され、パフォーマンスが向上しますが、型の安全性の確保、デバッグの困難、名前の競合、コードの冗長性などの欠点もあります。メリットとデメリットを比較検討した後、関数マクロを使用する場合は、情報に基づいた決定を下すことが重要です。

C言語で最大公約数を求める方法を詳しく解説 最大公約数(GCD、Greatest Common Divisor)とは、数学でよく使われる概念で、複数の整数のうち最大の約数を指します。 C 言語では、最大公約数を見つけるためにさまざまな方法を使用できます。この記事では、これらの一般的な方法のいくつかについて詳しく説明し、具体的なコード例を示します。方法 1: ユークリッド除算は、2 つの数値の最大公約数を見つけるための古典的な方法です。その基本的な考え方は、2 つの数の約数と余りを連続的に除算することです。

C++ の関数呼び出しメカニズムには、関数に引数を渡してそのコードを実行し、結果が存在する場合にはその結果を返します。パラメーターを渡すには、値渡し (変更は関数内で行われます) と参照渡し (変更は呼び出し元に反映されます) の 2 つの方法があります。値の受け渡しでは、関数内の値の変更は元の値 (printValue など) に影響しませんが、参照の受け渡しでの変更は元の値 (printReference など) に影響します。

原著者: 0xSea.eth ブロック高さ 840,000 で、ビットコインは 4 回目の半減期を迎え、ブロック報酬は 6.25 BTC から 3.125 BTC に減少します。これは暗号化業界全体が注目している大きな出来事です。ビットコインのエコシステム内では、ほぼすべての人が、840,000 ブロックの高さでオンラインになる Runes プロトコルに注目しています。 Runes プロトコルは、ビットコイン層プロトコルのエコシステムの状況をどのように変えるのでしょうか? BRC-20、Atomics、その他のプロトコルにどのような影響がありますか?オブザーバーおよびプレイヤーとして、半減期とルーンの発売の前夜に、市場についての最近の考えをいくつか整理したいと思います。 Core Viewpoint 1/ビットコインの 1 層トークン プロトコルは BRC-20、Aとみを形成します

最大公約数は、C 言語のユークリッド アルゴリズムを使用して求めることができます。原理は、2 つの整数 a と b の最大公約数は、a を b で割った余りと、c と b の最大公約数に等しいというものです。このアルゴリズムは非常に効率的であり、大きな数を扱う場合でも迅速に解決できます。

タイトル: C 言語プログラミングを使用して最大公約数ソリューションを実装する 最大公約数 (Greatest Common Divisor、略して GCD) とは、2 つ以上の整数を同時に除算できる最大の正の整数を指します。最大公約数を解くことは、一部のアルゴリズムや問題解決に非常に役立ちます。この記事では、最大公約数を求める機能をC言語プログラミングで実装し、具体的なコード例を紹介します。 C 言語では、ユークリッド アルゴリズムを使用して最大値を解くことができます。

この記事では、C++ に焦点を当て、さまざまなプログラミング言語における配列の最大公約数 (GCD) に関する興味深い質問を探ることを目的としています。ペアごとの要素交換とその積の数を利用して、GCD を 1 より大きく改善できるかどうかを検証するアルゴリズム アプローチを示します。さらに、この問題を解決する他の方法を、それぞれの構文定義とともに提供します。これらのソリューションに加えて、これらのメソッドを含む 2 つの完全な実行可能コードも紹介します。構文 以下のコード例を明確に理解するには、その前に使用される構文を評価して理解する必要があります。 #include<iostream>#include<vecto

C 言語で最大公約数を求める実装方法については、具体的なコード例が必要です 最大公約数とは、2 つ以上の整数が共有する約数の最大値のことを最大公約数といいます。アルゴリズム設計では、最大公約数を見つけることがよくある問題です。以下では、C 言語で最大公約数を実装するいくつかの方法を詳細に紹介し、具体的なコード例を示します。方法 1: ブルート フォース法 ブルート フォース法は、考えられるすべての約数を調べて、最大公約数として最大の約数を見つけるという単純かつ直接的な方法です。 #含む
