Число 365 — триста шестьдесят пять

Число 365 (триста шестьдесят пять) — трехзначное нечетное, делится на пять, семьдесят три и само себя.
Т.е число 365 делится на 5, 73, 365, и раскладывается на множители: 5:73.
Сумма цифр в числе 365 равна 14, а их умножение (отличных от нуля) — 90.
Обратное число 365 = 0.0027397260273973
Двоичная система счисления 3652: 101101101
Проверка:
| 256 | +256 (2 8 ) | 1 |
| 128 | 0 | |
| 64 | +64 (2 6 ) | 1 |
| 32 | +32 (2 5 ) | 1 |
| 16 | 0 | |
| 8 | +8 (2 3 ) | 1 |
| 4 | +4 (2 2 ) | 1 |
| 2 | 0 | |
| 1 | +1 (2 0 ) | 1 |
Примеры:
триста шестьдесят пять минус два миллиона девятьсот девяносто восемь тысяч триста шестьдесят девять равно минус два миллиона девятьсот девяносто восемь тысяч четыре
триста шестьдесят пять плюс три миллиона семьсот шестьдесят четыре тысячи семьсот сорок два равно три миллиона семьсот шестьдесят пять тысяч сто семь
триста шестьдесят пять минус четыре миллиона четыреста восемьдесят пять тысяч восемьсот семьдесят семь равно минус четыре миллиона четыреста восемьдесят пять тысяч пятьсот двенадцать
триста шестьдесят пять плюс шесть миллионов восемьсот тридцать одна тысяча четырнадцать равно шесть миллионов восемьсот тридцать одна тысяча триста семьдесят девять
Предыдущее число: 364 (триста шестьдесят четыре), а следующее число — 366 (триста шестьдесят шесть).
Високосные годы
Надеюсь, вы отлично встретили новый год, и сейчас у вас отличное праздничное настроение. По крайней мере у меня это именно так — мы не пили никакого алкоголя, и чокнулись в полночь бокалами с водой из пятилитровой канистры, поэтому мы проснулись, погуляли, и тут я вспомнил одно из вчерашних поздравлений с Новым годом:
Желаю, чтобы в конце каждого года ты, вспоминая то, что было за последние 366 if ((year%4 == 0 and year%100 != 0) or (year%400 == 0)) else 365 дней, думал про себя:
— Ох, нифига себе, какой был экшен. Обязательно буду рассказывать внукам или напишу об этом потом книгу.
Итак, выше достаточно простой inline-способ определить количество дней в году (переменная year), который, по сути, полностью раскрывает их суть: в григорианском календаре високосными годами считаются те годы, порядковый номер которых либо кратен 4, но при этом не кратен 100, либо кратен 400. Иными словами, если год делится на 4 без остатка, но делится на 100 только с остатком, то он високосный, иначе — невисокосный, кроме случая, если он делится без остатка на 400 — тогда он всё равно високосный.
Например, 2013 год невисокосный, 1700, 1800 и 1900 — опять же невисокосные годы, а вот 2000, 2004, 2008 и 2012 — високосные.
Но что, если мы не помним, сколько дней в високосных (366 дней) и невисокосных (365 дней) годах, или просто хотим написать определение количества дней в году максимально быстро? Можно ли сделать так на Python? Конечно же, можно.
Итак, в Python есть модуль calendar. Он как раз отлично подходит для того, чтобы узнать, является ли тот или иной год високосным (или, например, сколько високосных годов в определённом интервале), определить количество дней в месяце, получить номер дня недели для определённой даты и так далее.
В частности, мы можем получить количество дней в каждом месяце года, и просто сложить.
Функция calendar.monthrange принимает номер года в качестве первого аргумента и номер месяца в качестве второго аргумента. Возвращает номер дня недели первого числа данного месяца и количество дней в данном месяце:
Соответственно, мы можем подсчитать общее количество дней для всех 12 месяцев, и получить таким образом количество дней для данного года:
Но если подумать о том, как именно выполняется эта строка, становится очевидно, что это решение очень неэффективно, если нужно посчитать количество дней для большого количества годов.
Проверяем с помощью модуля timeit.
На то, чтобы выполнить её 1 миллион раз, требуется 13.69 секунд, если import calendar делается один раз в начале. Если import calendar делается каждый раз, тогда 14.49 секунд.
Теперь попробуем другой вариант. Он требует знания того, сколько дней в високосных и невисокосных годах, но зато он очень короткий:
И, как легко догадаться, он уже намного быстрее: 0.83 секунд, включая import calendar, и 0.26 секунд, если import calendar делается один раз в начале.
Давайте также посмотрим, сколько требуется времени самому первому варианту, с «ручным» подходом: 0.07 секунд для 2012 и 2013 и 0.12 секунд для 2000 (думаю, всем понятно, откуда берётся такая разница в скорости для этих годов).
Получается, что это и есть самый быстрый вариант из этих трёх:
Конечно, в большинстве случаев вы можете использовать любой из этих вариантов — в конце концов, при определении количества дней в одном, двух, десяти или ста годах вы вряд ли почувствуете какую-либо разницу.
Пишите, оптимизируйте, улучшайте, тестируйте и считайте производительность — но не забывайте о читаемости исходников ваших программ.
С Новым годом! Удачи, счастья, радости и самосовершенствования в новом году.
Найти все делители числа — онлайн калькулятор
Делимость — одно из основных понятий арифметики и теории чисел, связанное с операцией деления. С точки зрения теории множеств, делимость целых чисел является отношением, определённым на множестве целых чисел.
Если для некоторого целого числа a и целого числа b существует такое целое число q, что bq=a, то говорят, что число a делится нацело на b или что b делит a.
При этом число b называется делителем числа a, делимое a будет кратным числа b, а число q называется частным от деления a на b.