Форум программистов, компьютерный форум, киберфорум
Наши страницы
Баженов
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 1.

Универсальный алгоритм проверки делимости нечетных чисел на нечетные делители

Запись от Баженов размещена 11.06.2019 в 22:26

Простой, универсальный для любых нечетных делителей, алгоритм проверки делимости нечетных чисел
на нечетные делители.
Его основанием является очевидное положение::
- нечетное число N делится на нечетное число a, если существует такое число b, для которого выполняется
равенство N-(2a)*b= a в квадрате, при этом частное от деления будет, равно 2b+a.
Реализацией этого положения будет тогда являться алгоритм последовательного вычитания чисел 2a
до тех пор, пока разность не станет равной a в квадрате (если N делится на a) или меньшей этого
значения, если N не делится на a.
Достоинствами этого алгоритма являются:
- замена операции деления на последовательные вычитания, что очевидно,
-возможность, что особенно замечательно, проверять сколь угодно большие нечетные числа,
если в качестве b использовать степени 10.
Последнее недоступно существующим и любым мыслимым вычислителям.
Размещено в Без категории
Просмотров 145 Комментарии 3
Всего комментариев 3
Комментарии
  1. Старый комментарий
    Насколько я понял, если нечётное число N представимо в виде N = a * M, то N = 2ab + a^2
    Несколько странное представление числа N. Но пусть будет так как вы желаете, ибо математически это корректно. Что касается деления, то оно на ЭВМ и так вычисляется с помощью вычитаний...
    Однако, если операция деления для длинных чисел напрямую невозможна, то операция вычитания тоже напрямую будет невозможна. Тут никакого преимущества нет. Хотя конечно число можно представить в виде массива его цифр... и оперировать этими массивами...
    ...
    примечание
    но не проще ли будет обычное вычитание, без ваших загадочных формул
    Запись от нтч размещена 12.06.2019 в 08:18 нтч вне форума
  2. Старый комментарий
    Не понятно для чего квадрат числа. Если данное утверждение верно (впрочем как и нет, то о чём я излагаю - доказуемо), то деление на нечётное число возможно и если изменить число b, так, что выполнится равенство равенство N-(2a)*b= a без вот этого
    Цитата:
    = a в квадрате
    .
    Это было написано без каких-либо размышлений.
    Для каких таких изысков квадрат числа приплетён - вообще не ясно. Если число делится на нечётное, то всегда существует чётный множитель нечётного, при умножении на который и последующем вычитании из максимального будет получено то, на что делится максимальное - данное утверждение слишком сложное для многих из участников данного портала, ибо тут многие страдают нарушениями речи и прочими патологиями, но тем не менее - оно верное. А посмотрим-ка мы профиль. Как я понял - автор в поиске.
    Запись от Hretgir размещена 14.06.2019 в 21:55 Hretgir на форуме
    Обновил(-а) Hretgir 14.06.2019 в 23:17
  3. Старый комментарий
    Уважаемый Hretgir,
    вы верно заметили, что ТС находится в поиске. Он ещё не определился с вычитанием, хотя находится на верном пути. Действительно, вычитание (если не рассматривать деление) и есть тот универсальный метод, который позволит определить для любого числа (а не только нечётного) возможность делимости на другое число. Хочу на примере показать то, что ТС видимо ещё пока не осмыслил...
    Дано число 987 654 325. Определить: делится ли это число на 7
    Решение:
    Будем применять вычитание к каждой цифре или паре цифр, если это возможно
    1. Вычитаем 7 из каждой цифры, получим число 210 654 325
    2. Вычитаем 21 (оно делится на 7), имеем 000 654 325 (я делаю подробно, чтобы меня понял ТС)
    3. Вычитаем 63 (оно делится на 7), имеем 000 024 325
    4. Вычитаем 21, (оно делится на 7) имеем 000 003 325
    5. Вычитаем 28 (оно делится на 7), имеем 000 000 525
    6. Вычитаем 49 (оно делится на 7), имеем 000 000 035
    7. Вычитаем 35 (оно делится на 7), имеем 000 000 000 или просто 0. Поскольку 0 делится на 7, то значит и само число делится на 7
    ...
    Вот применение красивого универсального признака делимости. Тут нет никаких квадратов!!!
    ...
    примечание
    1. Конечно начальные нули можно было сразу отбрасывать. Но тогда ТС мог бы и не понять.
    2. Использование чисел 14, 21, 35, ... (а не только числа 7) ускоряет вычисления.
    Запись от нтч размещена 15.06.2019 в 08:12 нтч вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru