ПредишенСледващото

Наскоро изправени такъв проблем:
Като се има предвид определено положително число, е необходимо да намерите всички делителите, различни от себе си.
Задачата е да се напише по-бързо алгоритъм е възможно, и разбира се
вярна.
Първата идея беше да се оправи по-малкия брой, проверка за делимост, но пълен
бюст даде широк обхват на приложение, трябва да решим един проблем, като например
, работа на алгоритъма за дълго време, след няколко модификации
Имам тук е такъв алгоритъм, горната граница за сложността в най-лошия случай.
Алгоритъмът запълва брой вектор detelyami.

невалидни find_divs (междинно съединение N, вектор divs) Int г, dlim, m = 1;
divs.push_back (1);

Мога ли по някакъв начин подобряване на алгоритъма? Или има по-бърз начин да се реши този проблем?

Re: Намиране на всички делителите на

Мога ли по някакъв начин подобряване на алгоритъма?

Първо трябва да го оправя. Уверете се, че можете да получите до 12 и 36.

Или има по-бърз начин да се реши този проблем?

Първо трябва да се разлагането на входните номерата в прости числа. След обхождане през всички комбинации от основните фактори.

Re: Намиране на всички делителите на

Първо трябва да го оправя. Уверете се, че можете да получите до 12 и 36.


Да, алгоритъмът не работи правилно). Мисля, че това е правилно:

невалидни find_divs (междинно съединение N, вектор divs) Int г, dlim, m = 1;
divs.push_back (1);

Първо трябва да се разлагането на входните номерата в прости числа. След обхождане през всички комбинации от основните фактори.


Да, имаше такава идея, за грубите комбинации сили ще отидат някъде повторения, тъй като в този случай, за да се оцени сложността на алгоритъма? Има ли някаква формула за изчисляване на броя на основните фактори на номера. Или най-малкото, че е необходимо да се изчисли горната граница, т.е. Намерете номера, който може да се разшири до максималния брой на основните фактори.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!