/ /指定された番号の2つ以上の番号をGCF - c#、java、algorithm、greatest-common-divisor

与えられた数を持つ2つ以上の数をGCF - c#、java、algorithm、greatest-common-divisor

私は与えられた数のGCFを見つけたくありません。 私はユークリッドを使っています。私は与えられたGCFを持つ一連の数値を生成したい。例えば私が4を選んだ場合、私は100,72、または4,8などのようなものを得なければなりません。

任意のポインタが評価されるだろう。

回答:

回答№1は1

一連の数字の対 N GCFは {N,N}, {N,2N}, {N,3N}, ....

実際には、 N 1以上の N 持っている N そのGCFとして。


回答№2の場合は0

1.おそらく、この質問はよりよく答えられるかもしれません。 http://math.stackexchange.com

2。GCDの要因ではない数字を乗算して、関心のある数字を構成してください。与えられたGCD = 4の例では、 $ k_1 = 4 $ GCD自体 $ k_2 = 4 * 2 $は4を2で割っていないので $ k_3 = 4 * 3 $は4を分割しないので3 $ not k_4 = 4 * 4 $は4を4で割るので、 $ k_4 = 4 * 5 $は4を除いて5などを割り切っていない


回答№3の場合は0

4が入力の場合、数字のリストが必要です最大の共通因子は4です。これを確実にするには、シリーズ全体で唯一の要因を4にします。したがって、あなたはそれを保証するためにすべての素数で数(4)を掛けます。

プライムリスト= 3,5,7,11,13,17

4 - >(3 * 4)12、(4 * 5)20、(4 * 7)28、(4 * 11)44、(4 * 13)52、(4 * 17)68、 ..

これにより、任意の2つの数字のGCFが4であるようなリストが得られます


回答№4の場合は0

ペアワイズに依存しない数の集合を選択します(つまり、集合内のすべてのx <> yに対してgcd(x、y)= 1)。それぞれの数字にあなたの目標GCDを掛けます。


回答№5の場合は0

私はこれが古い質問であることを理解していますが、私は自分の答えを提供するつもりです。まず、GCFを呼び出します。

当初私は何かをすることを提案していたでしょうランダムな整数を選び、nを掛け合わせて数字の集合を得るのと同じように、これはもちろんnで割り切れる数を与えますが、必ずしもGCFがnの数字ではありません。整数がすべて「1」以外のGCFを持つ場合、結果セットのGCFは実際にはnではなくそのn倍のGCFを持ちます。 nを整数の集合で乗算すると言われるのは、集合の各数値が少なくともnで割り切れることを保証する最良の方法です

1つのオプションは、それらの数字の1つを作ることですが、nが常に結果のセットになるので、セットのランダム性が低下します。

次に、いくつかの素数とそれらをnで掛けることもできますが、それは可能性の低い数字があるので乱数を減らし、実際にはプライムである必要はなく、単にコプライム(GCF = 1)

あなたはまた、それぞれの数字のセットを選ぶこともできますペアの数は共にプライムしていましたが、もう一度、セット全体をコプリム(co-prime)にする必要はありません(これは大きなセットではかなりプロセッサ集中型です)。

だからあなたがかなり乱数のために行くなら、私は(ランダムに決定されているか、あらかじめ決められているかにかかわらず)セット内のいくつの番号を決定し、その番号よりも1つ少ない数字を完全に「ランダムに」生成することから始めます。私はそれらの数の共通の素因数を計算し、それらの素因数のいずれも持たない乱数を選ぶでしょう。 GCFが最終的な数値に共通の要因を持つ可能性があるため、同じGCFを持たないことを保証するだけでは不十分です。それは、そのセットのGCFを「1」にするために、セット内の他の数字と同じ素因数をもたないセット内の1つの数字だけを必要とする。私はその数字のセットを取って、あなたが望む数字のセットを得るためにそれぞれnを掛けます。