Тема: Непрактичне
Вам потрібні готові рецепти вирішення типових задач, побудовані на досвіді когось досвідченого? Історії успіху? Бідкання про насущні й об'єктивні проблеми? Рекомендації, як знайти дівчину, заробити багато грошей, зберегти здоров'я? Цього тут не буде — йдіть далі й не офтопте. Ця тема повністю присвячена обміну ідеями, що не мають практичного застосування. Приблизно як «кодофлуд», але ширше — я не маю наміру обмежувати тему виключно кодом (хоча й код теж буде) — нестандартні ідеї, винаходи велосипедів, велетенські полотна на тему чогось відстороненого, нікому непотрібні математичні розрахунки (у т.ч., з помилками) тільки вітаються. Критика — якщо це конструктивна критика, що дозволить доповнити непотрібні речі новим непотрібним функціоналом — також. Якщо щось із цього раптом виявиться комусь корисним на практиці — чудово, але я не ставив це за мету, створюючи цю тему.
---------------------------------------------------------------------------------
Для початку, гра (код незавершений і недостатньо роздутий, можна довести гру до досконалості, щоб залежність від неї ставала нездоланною, але й так можна шпилити):
Як у це грати: програма називає число й пропонує знайти його прості дільники (всі чи хоча б один). Наприклад, для числа 24 правильною відповіддю буде «2 2 2 3», для числа 101 — «101». Для успішної гри потрібно вміти перевіряти подільність на прості числа (2, 3, 5, 7, 11 і т.д.) — можна просто ділити на це число й дивитися, якою буде остача, або можна використовувати методи перевірки подільності. Наприклад, ми знаємо, що всі числа, що закінчуються парною цифрою, є парними. Або числа, сума цифр яких ділиться на 3, діляться на 3. Такі способи перевірки подільності можна підшукати й для інших чисел — напр., для подільності на 7:
1) Розбиваємо число (напр., 12345) на дві частини: дві цифри праворуч (45) та решта цифр, що йдуть ліворуч від них (123).
2) Множимо ліву частину на 2 (123*2 = 246).
3) Додаємо отриманий результат до правої частини (246+45=291).
4) Якщо число, отримане в результаті, має три або більше цифр, повторюємо з ним дії 1...3 знов, і т.д., доки не отримаємо дво- чи одноцифрове число. (291 => 2*2 + 91 = 95).
5) Якщо отримане число більше за 50, віднімаємо 50, додаємо 1. (95 -50 + 1 = 46)
6) Якщо отримане число ділиться на 7, то й початкове число теж ділиться. (46 на 7 не ділиться, тому й 12345 теж не ділиться).