|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Oleg I. Khovayko 2:5020/400 28 Oct 2002 18:51:55 To : Andrew Nikitin Subject : Re: наибольший нечётный множитель -------------------------------------------------------------------------------- Andrew Nikitin wrote: > > положителное) значение. Hадо написать выражение значением которого является > наибольший нечётный делитель числа x. Hу если время вычислений не особо важно, то: /* greatest odd divisor */ int god(int x) { int d = x | 1; while(x % d) d -= 2; return d; } PS: 1. Работает только для положительных x. 2. если x нечетно, т.е. само является своим максимальным нечетным делителем, оно же и возвращается. Если хочется искать только нетривиальный делитель, в цикле двойку надо вычитать перед сравнением, то есть вторая строчка будет выглядеть как: do { d -= 2; } while(x % d); При этом надо, чтобы входной X был больше 1. -- #include <best/regards.hpp> Oleg I. KHOVAYKO (301)435-5885 || WEB: http://olegh.spedia.net --- ifmail v.2.15dev5 * Origin: National Center for Biotechnology Information (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/11522cc1c5fff.html, оценка из 5, голосов 10
|