Сколько существует шестизначных чисел, делящихся
Заметим, что чётных и нечётных цифр
Ответ: 1296.
Приведём другое решение на языке Python.
import itertools
alphabet = "0123456789"
ar = itertools.permutations(alphabet, 6) #Размещение
arl = []
for e in ar:
arl.append(list(e))
count = 0
for e in arl:
flag = True
for i in range(len(e)-1):
if (e[0] == "0") or (int(e[i]) % 2 == 0 and int(e[i+1]) % 2 == 0) or (int(e[i]) % 2 != 0 and int(e[i+1]) % 2 != 0) or (e[5] != "5" and e[5] != "0"):
flag = False
if flag:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import permutations
count = 0
for var in permutations('0123456789', 6):
num = ''.join(var)
if num[0] != '0' and num[-1] in '05':
num = num.replace('0', '2').replace('4', '2').replace('6', '2').replace('8', '2')
num = num.replace('3', '1').replace('5', '1').replace('7', '1').replace('9', '1')
if '22' not in num and '11' not in num:
count += 1
print(count)
Приведём решение Сергея Донец на PascalABC.NET:
begin
'0123456789'.Permutations(6) // 10-ричная 6-значных
.Where(s->(s[1] <> '0')and((s[6] = '0')or(s[6] = '5')) ) // Первой цифрой не может быть 0
.Where(s->not s.IsMatch('[02468][02468]')) //не две чётные цифры рядом
.Where(s->not s.IsMatch('[13579][13579]')) //не две нечётные цифры рядом
.Count.Print;//1296
end.

