Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
an-1 * n + 1 оканчивается на 01 при a1 = 1 и n > 9(am-1 + 50)2 оканчивается на 01 при a1 = 49 и a1 = 51 an+5 в следующем разряде перед окончанием 01 будет стоять нуль. Как много существует значений функции m2 и значений функции n! + 1 при равном порядке, у которых будут совпадать окончания? Будет ли уменьшаться количество значений с одинаковым окончанием для каждой функции при равном порядке?Являются ли 4, 5 и 7 единственными значениями n!, которые на 1 квадрата целого числа?
n! + 1 = m^2 n! = m^2 - 1 n! = (m + 1) * (m - 1)
2 * 3 = 6 | 4 = 4 | 2 2 * 5 = 10 | 3 * 4 = 12 | 2 2 * 3 * 5 = 30 | 4 * 6 = 24 | 6 2 * 3 * 4 = 24 | 5 * 6 = 30 | 6 2 * 5 * 7 = 70 | 3 * 4 * 6 = 72 | 2 2 * 3 * 5 * 7 = 210 | 4 * 6 * 8 = 192 | 18 2 * 3 * 4 * 8 = 192 | 5 * 6 * 7 = 210 | 18 3 * 5 * 6 * 7 = 630 | 2 * 4 * 8 * 9 = 576 | 54 3 * 4 * 6 * 8 = 576 | 2 * 5 * 7 * 9 = 630 | 54 2 * 4 * 5 * 6 * 8 = 1920 | 3 * 7 * 9 * 10 = 1890 | 30 2 * 3 * 5 * 7 * 9 = 1890 | 4 * 6 * 8 * 10 = 1920 | 30 2 * 3 * 4 * 8 * 10 = 1920 | 5 * 6 * 7 * 9 = 1890 | 30 3 * 5 * 6 * 7 * 10 = 6300 | 2 * 4 * 8 * 9 * 11 = 6336 | 36 3 * 4 * 6 * 8 * 11 = 6336 | 2 * 5 * 7 * 9 * 10 = 6300 | 36 2 * 4 * 5 * 6 * 9 * 10 = 21600 | 3 * 7 * 8 * 11 * 12 = 22176 | 576 2 * 3 * 6 * 7 * 8 * 11 = 22176 | 4 * 5 * 9 * 10 * 12 = 21600 | 576 2 * 3 * 5 * 8 * 9 * 10 = 21600 | 4 * 6 * 7 * 11 * 12 = 22176 | 576 2 * 3 * 5 * 6 * 10 * 12 = 21600 | 4 * 7 * 8 * 9 * 11 = 22176 | 576 2 * 3 * 4 * 7 * 11 * 12 = 22176 | 5 * 6 * 8 * 9 * 10 = 21600 | 576 2 * 3 * 4 * 5 * 6 * 10 * 11 = 79200 | 7 * 8 * 9 * 12 * 13 = 78624 | 576 3 * 5 * 6 * 8 * 10 * 11 = 79200 | 2 * 4 * 7 * 9 * 12 * 13 = 78624 | 576 3 * 4 * 7 * 8 * 9 * 13 = 78624 | 2 * 5 * 6 * 10 * 11 * 12 = 79200 | 576 3 * 4 * 6 * 7 * 12 * 13 = 78624 | 2 * 5 * 8 * 9 * 10 * 11 = 79200 | 576 3 * 4 * 5 * 10 * 11 * 12 = 79200 | 2 * 6 * 7 * 8 * 9 * 13 = 78624 | 576 840 6120 24480 20160 93696 420480 ...
четные: 2 6 18 30 576 840 24480 93696 нечетные: 2 2 54 36 576 6120 20160 420480
<?php
$arr = [2,3,4];
$minDiff = 1000000000;
foreach (getCombinations($arr, (int)(count($arr)/2)) as $variant) {
list($a, $b) = $variant;
$ma = getMult($a);
$mb = getMult($b);
$diff = abs($mb - $ma);
if ($diff < $minDiff) $minDiff = $diff;
if ($diff == 2) {
echo printArr($a) . ' | ' . printArr($b) . ' | ' . $diff;
echo PHP_EOL;
}
}
echo 'Min diff: ' . $minDiff;
echo PHP_EOL;
return;
function printArr($arr)
{
return implode(' * ', $arr) . ' = ' . getMult($arr);
}
function getMult($arr)
{
return array_reduce($arr, function ($e, $res) { return $res*$e; }, 1);
}
function getCombinations($items, $n)
{
if ($n == 0) {
yield [$items, []];
} else {
foreach ($items as $i => $el) {
foreach (getCombinations(array_slice($items, $i+1), $n-1) as $variant) {
yield [array_merge(array_slice($items, 0, $i), $variant[0]), array_merge([$el], $variant[1])];
}
}
}
}
if r * r != fac + 1
println(n, "! + 1 - ", r, "^2 = ", fac + 1 - r^2)

В факториале по крайней мере один простой делитель — самый большой — всегда присутствует только один раз.
Короткое плечо совпадения