/ / Намиране на 2 или повече номера с дадено число като GCF - c #, java, алгоритъм, най-общ делител

Намиране на 2 или повече номера с дадено число като GCF - c #, java, алгоритъм, най-често срещан делител

Не искам да намеря GCF на дадени числа. Използвам Евклид за това. Искам да генерирам поредица от числа с даден GCF. Например, ако избера 4, трябва да получа нещо като 100, 72 или 4, 8 и т.н.

Всички насоки биха били ценени.

Отговори:

1 за отговор № 1

Серия от двойки числа N като GCF {N,N}, {N,2N}, {N,3N}, ....

Всъщност всеки набор от N и 1 или повече кратни на N има N като GCF.


0 за отговор № 2

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 и т.н.


0 за отговор № 3

Ако 4 е вход, искате списък с числанай-големият общ фактор е 4. Можете да гарантирате това, като направите 4 единствения фактор в цялата серия. Следователно, умножете числото (4) от всички прости числа, за да се гарантира това.

prime-list = 3, 5, 7, 11, 13, 17

gcf-списък за 4 -> (3 * 4) 12, (4 * 5) 20, (4 * 7) 28, (4 * 11) 44, (4 * 13) 52, (4 * 17) 68,. ..

Това ще ви даде списък такъв, че GCF на всеки два числа е 4


0 за отговор № 4

Изберете набор от числа, които са двойно независими (това е gcd (x, y) = 1 за всеки x <y в набора). Умножете всеки номер от целевия си GCD.


0 за отговор № 5

Осъзнавам, че това е стар въпрос, но ще дам своя собствен отговор заедно с обяснение за това как съм стигнал там. Първо, нека наричаме GCF n.

Първоначално бих предложил да направим нещоподобно на избирането на случайни числа и умножаването им по n, за да се получи набор от числа, това, разбира се, ще ви даде числа, равномерно делими на n, но не непременно числа с GCF на n. Ако числата се случват на всички, които имат GCF, различни от "1", тогава GCF на получения набор действително ще има GCF от n пъти това число, а не n. Това, което се казва, умножаване на n с набор от числа изглежда най-добрият начин да се гарантира, че всеки номер в множеството е най-малко се дели на n

Една от възможностите е да се направи един от тези номера 1, но това би намалило случайността на множеството, тъй като n винаги ще бъде в получения резултат.

След това можете да използвате някои прости числа иумножете ги с п, но това също би намалило случайността, тъй като е възможно да има по-малко възможни числа, а числата всъщност не трябва да са премиерни, само ко-премиер (GCF = 1 за целия набор)

Можете също така да изберете набор от номера, където всекичифт числа бяха съ-премиер, но отново, целият комплект трябва да бъде съ-първостепенен, а не ко-първичен (който би бил доста интензивен за процесора с по-големи комплекти).

Така че, ако отивате за доста случайни числа Iще започне с определяне колко числа искате в набора (независимо дали това е произволно определено или предварително определено) и след това генериране на по-малко от това число напълно "случайно". След това бих изчислил общите прости фактори за тези числа и след това избих случайно число, което няма някой от тези основни фактори. Самото гарантиране, че няма същия GCF, не е достатъчно, тъй като GCF може да има общи фактори за крайния брой. Той изисква само един номер в комплект, който не притежава нито един от същите основни фактори като другите числа в множеството, за да направи GCF от този набор "1". След това бих взел този набор от числа и умножавах всеки по n, за да получа набор от номера, които искате.