Сколько слов
PDF-версии: горизонтальная · вертикальная · крупный шрифт · с большим полем

Сколько слов
Решение. На первом месте может стоять две буквы:
Ответ: 162.
Приведём другое решение на языке Python.
import itertools
alphabet = "ЕГЭ"
vol = "ЕЭ"
ar = itertools.product(alphabet, repeat = 5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e[0] in vol:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import *
cnt = 0
for per in product('ЕГЭ', repeat=5):
slovo = ''.join(per)
if slovo[0] in 'ЕЭ':
cnt += 1
print(cnt)
Приведём решение Артёма Гридина на языке Python.
from itertools import product
print([m[0] != 'Г' for m in product('ЕГЭ', repeat=5)].count(True))
Приведём решение Юрия Лысакова на языке Python.
i = 0
for i1 in 'ЕЭ':
for i1 in 'ЕГЭ':
for i1 in 'ЕГЭ':
for i1 in 'ЕГЭ':
for i1 in 'ЕГЭ':
i += 1
print(i))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ЕГЭ'.Cartesian(5)
.Where(s->s.First in 'ЕЭ')
.Count.Print;
end.

Сколько слов
Решение. В конце может стоять две буквы:
Ответ: 256.
Приведём другое решение на языке Python.
import itertools
alphabet = "ЗИМА"
con = "ЗМ"
vol = "ИА"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e[0] in con and e[-1] in vol:
count += 1
print(count)
Приведём другое решение на языке Python.
count = 0
for i1 in 'ЗИМА':
for i2 in 'ЗИМА':
for i3 in 'ЗИМА':
for i4 in 'ЗИМА':
for i5 in 'ЗИМА':
s = i1 + i2 + i3 + i4 + i5
if (s[0] == 'З' or s[0] == 'М') and (s[4] == 'И' or s[4] == 'А'):
count += 1
print(count)
Приведём решение Юрия Лысакова на языке Python.
from itertools import product
count = 0
for i in product('ЗИМА', repeat=5):
s = ''.join(i)
if (s[0] == 'З' or s[0] == 'М') and (s[4] == 'И' or s[4] == 'А'):
count += 1
print(count)
Приведём решение Андрея Тухманова на языке Python.
from itertools import *
words = [''.join(i) for i in product(sorted('ЗИМА'), repeat=5) if (i[0] in 'ЗМ') and (i[-1] in 'ИА')]
print(len(words))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ЗИМА'.Cartesian(5)
.Where(s->s.First in 'ЗМ')
.Where(s->s.Last in 'ИА')
.Count.Print;
end.

Вася составляет 5-буквенные слова, в которых есть только буквы С, Л, О, Н, причём
Решение. Пусть С стоит в слове на первом месте. Тогда на каждое из оставшихся вариант.
Таким образом,
Итого получается слов.
Ответ: 405.
Приведём решение на языке Python.
import itertools
count = 0
for i in itertools.product("СЛОН", repeat=5):
arl = ''.join(i)
if arl.count('С') == 1:
count += 1
print(count)
Приведём решение Юрия Лысакова на языке Python.
i = 0
for i1 in 'СЛОН':
for i2 in 'СЛОН':
for i3 in 'СЛОН':
for i4 in 'СЛОН':
for i5 in 'СЛОН':
s = i1 + i2 + i3 + i4 + i5
if s.count('С') == 1:
i += 1
print(i)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'С, Л, О, Н, '.Remove(', ')
.Cartesian(5)
.Where(w -> w.CountOf('С') = 1)
.Count
.Print;
end.

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует 5-буквенные слова, в которых есть только буквы П, И, Р, причём
Решение. Игорь может составить
Ответ: 80.
Приведём решение на языке Python.
import itertools
alphabet = "ПИР"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count('П') == 1:
count += 1
print(count)
Приведём решение Юрия Красильникова на языке Python.
import itertools
print(len([p for p in itertools.product('ПИР',repeat = 5) if p.count('П') == 1]))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'П, И, Р'.Remove(', ').Cartesian(5)
.Count(s->(s.CountOf('П')=1))
.Print;
end.

Алексей составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Алексей использует 5-буквенные слова, в которых есть только буквы A, B, C, X, причём
Решение. На первой позиции в слове могут быть все четыре буквы А, В, С и Х, а со второй по пятую — 3. Значит, всего можно составить
Ответ: 324.
Приведём решение на языке Python.
import itertools
alphabet = "ABCX"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if (e[0] == 'X' or e[0] != 'X') and e[1] != 'X' and e[2] != 'X' and e[3] != 'X' and e[4] != 'X':
count += 1
print(count)
Приведём решение Ивана Новикова на языке Python.
from itertools import *
cnt = 0
for i in product('ABCX', repeat=5):
p = ''.join(i)
if p.count('X') < 2 and p[0] == 'X' or p.count('X') == 0:
cnt +=1
print(cnt)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ABCX'.Cartesian(5)
.Where(s->(s.CountOf('X')=0) or
((s.CountOf('X')=1)and(s.First='X'))
).Count.Print;
end.

Рассматриваются символьные последовательности
Решение. Если в алфавите
Ответ: 216.
Приведём решение Егора Ельса на языке Python.
import itertools
c = 0
for i in itertools.product('УЧЕНИК', repeat=5):
if i[0] == 'У' and i[-1] == 'К':
c += 1
print(c)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'УЧЕНИК'.Cartesian(5)
.Count(s-> s.StartsWith('У')and s.EndsWith('К') )
.Print;//216
end.

Вася составляет 4-буквенные слова, в которых есть только буквы Б, Р, О, Н, Х, И, причём
Решение. Если в алфавите Кодовые слова устроены следующим образом: на одном из мест стоит
Ясно, что количество кодовых слов, в которых
Ответ: 500.
Приведём другое решение на языке Python.
import itertools
alphabet = "БРОНХИ"
ar = itertools.product(alphabet, repeat=4) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count('Х') == 1:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import product
count = 0
for var in product('БРОНХИ', repeat=4):
slovo = ''.join(var)
if slovo.count('Х') == 1:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import product
print(len([1 for var in product('БРОНХИ', repeat=4) if ''.join(var).count('Х') == 1]))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Б, Р, О, Н, Х, И, '.Remove(', ')
.Cartesian(4)
.Where(s->s.CountOf('Х')=1)
.Count.Print;
end.

Ольга составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Ольга использует 4-буквенные слова, в которых есть только буквы A, B, C, D, X, Y. При этом первая буква кодового слова — это
Решение. Существует
Ответ: 128.
Приведём другое решение на языке Python.
import itertools
alphabet = "ABCDXY"
s = 'XY'
ar = itertools.product(alphabet, repeat=4) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e[0] in s and e[1] not in s and e[2] not in s and e[3] not in s:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ABCDXY'.Cartesian(4)
.Where(s->(s[1] in 'XY') and
(((s.CountOf('X')=1)and(s.CountOf('Y')=0))or
((s.CountOf('X')=0)and(s.CountOf('Y')=1))) )
.Count.Print;
end.

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует 5-буквенные слова, в которых есть только буквы A, B, C, X, причём
Решение. Есть варианта. Тогда ответ —
варианта.
Ответ: 162.
Приведём другое решение на языке Python.
import itertools
alphabet = "ABCX"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count('X') == 1 and (e[0] == 'X' or e[-1] == 'X'):
count += 1
print(count)
Приведём решение Юрия Лысакова на языке Python.
from itertools import product
count = 0
for i in product('ABCX',repeat=5):
if i.count('X') == 1 and (i[0] == 'X' or i[4] == 'X'):
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ABCX'.Cartesian(5)
.Where(s->s.CountOf('X')=1)
.Where(s->(s.First='X')or(s.last='X'))
.Count.Print;
end.

Пётр составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Пётр использует все пятибуквенные слова в алфавите
Решение. Существует
Ответ: 5400.
Приведём другое решение на языке Python.
import itertools
alphabet = "ABCDEF"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
count = 0
for e in ar:
if e[0] != 'F' and e[-1] != 'A':
count += 1
print(count)
Приведём другое решение на языке Python.
count = 0
for s1 in "ABCDE":
for s2 in "ABCDEF":
for s3 in "ABCDEF":
for s4 in "ABCDEF":
for s5 in "BCDEF":
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ABCDEF'.Cartesian(5)
.Where(s->s[1] <> 'F')
.Where(s->s[^1] <> 'A')
.Count.Print;
end.

Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 4-буквенные слова, в которых есть только буквы A, B, C, D, E, X, Z, причём
Решение. Составляем четырехбуквенные слова. На первые два места можно поставить одну из двух
Таким образом, всего
Ответ: 100.
Приведём решение на языке Python.
import itertools
alphabet = "ABCDEXZ"
s = 'XZ'
s1 = 'ABCDE'
ar = itertools.product(alphabet, repeat=4) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e[0] in s and e[1] in s and e[2] in s1 and e[3] in s1:
count += 1
print(count)
Приведём решение Сергея Новикова на языке Python.
c = 0
a1 = 'XZ'
a2 = 'ABCDE'
for b1 in a1:
for b2 in a1:
for b3 in a2:
for b4 in a2:
s = b1+b2+b3+b4
c += 1
print(c)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'A, B, C, D, E, X, Z'.Remove(', ')
.Cartesian(4).Count(s->
(s[1]in'XZ')and(s[2]in'XZ')and
(s[3]in'ABCDE')and(s[4]in'ABCDE')
).Print;
end.

Вася составляет 5-буквенные слова, в которых есть только буквы З, И, М, А, причём в каждом слове есть ровно одна гласная буква и она встречается ровно
Решение. Слова, используемые Васей, имеют вид Х****, *X***, **X**, ***X* или ****X, где на
Ответ: 160.
Приведём другое решение на языке Python.
import itertools
alphabet = "ЗИМА"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if (e.count('И') == 1 and e.count('А') == 0) or (e.count('И') == 0 and e.count('А') == 1):
count += 1
print(count)
Приведём решение Андрея Тухманова на языке Python.
from itertools import product
words = [''.join(i) for i in product(sorted('ЗИМА'), repeat=5)]
count = 0
for i in range(len(words)):
if words[i].count('И') + words[i].count('А') == 1:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'З, И, М, А'.Remove(', ')
.Cartesian(5)
.Count(s->
((s.CountOf('И')=1)and(s.CountOf('А')=0))
or
((s.CountOf('И')=0)and(s.CountOf('А')=1))
).Print;
end.

Михаил составляет 6-буквенные коды. В кодах разрешается использовать только буквы А, Б, В, Г, при этом код не может начинаться с гласной и не может содержать двух одинаковых букв подряд. Сколько различных кодов может составить Михаил?
Решение. На первое место слова можно поставить любую из
Ответ: 729.
Приведём другое решение на языке Python.
import itertools
alphabet = "АБВГ"
ar = itertools.product(alphabet, repeat=6) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e) - 1):
if e[0] == 'А' or e[i] == e[i + 1]:
flag = False
if flag == True: count += 1
print(count)
Приведём решение Артема Нерсисяна на языке Python.
from itertools import product
count = 0
for x in product('АБВГ', repeat=6):
w = ''.join(x)
if w[0] != 'А' and w.count('АА') == 0 and w.count('ББ') == 0 and w.count('ВВ') == 0 and w.count('ГГ') == 0:
count += 1
print(count)
Приведём решение Юрия Лысакова на языке Python.
i = 0
for i1 in 'БВГ':
for i2 in 'АБВГ':
for i3 in 'АБВГ':
for i4 in 'АБВГ':
for i5 in 'АБВГ':
for i6 in 'АБВГ':
s = i1 + i2 + i3 + i4 + i5 + i6
if s.count('АА') == 0 and s.count('ББ') == 0 and s.count('ВВ') == 0 and s.count('ГГ') == 0:
i += 1
print(i)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'А, Б, В, Г'.Remove(', ').Cartesian(6)
.Where(s->s[1] <> 'А') // Первой не может быть А
.Where(\(a,b,c,d,e,f)->((a<>b)and(b<>c)and(c<>d)and(d<>e)and(e<>f))
).Count.Print;
end.

Матвей составляет 6-буквенные коды из букв М, А, Т, В, Е, Й. Каждую букву нужно использовать ровно
Решение. Сначала найдём общее количество возможных слов. Поскольку на первое место можно поставить любую букву,
Ответ: 504.
Приведём другое решение на языке Python.
import itertools
alphabet = "МАТВЕЙ"
ar = itertools.permutations(alphabet) #Перестановка
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e) - 1):
if e[0] == 'Й' or (e[i] == 'А' and e[i + 1] == 'Е'):
flag = False
if flag == True: count += 1
print(count)
Приведём решение Михаила Глинский на языке Python.
al='МАТВЕЙ'
k=0
for b1 in 'МАТВЕ':
for b2 in al:
for b3 in al:
for b4 in al:
for b5 in al:
for b6 in al:
s=b1+b2+b3+b4+b5+b6
bb=set(s)
if len(s)==len(bb) and s.count('АЕ')==0:
k+=1
print(k)
Приведём другое решение на языке Python.
def func(not_used, pre=''):
if 'АЕ' in pre: # Не должно включать АЕ
return 0
if pre[:1] == 'Й': # Не должно начинаться с Й
return 0
if not_used == '': # Если все буквы использованы
return 1 # Считаем как один из вариантов
count = 0
for letter in not_used:
count += func(not_used.replace(letter, ''), pre + letter)
return count
print(func('МАТВЕЙ'))
Приведём решение Юрия Красильникова на языке Python.
import itertools
codes = [''.join(p) for p in itertools.permutations('МАТВЕЙ')]
codes2 = [w for w in codes if w[0]!='Й' and not 'АЕ' in w]
print(len(codes2))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'МАТВЕЙ'.Permutations
.Count(s->(s[1]<>'Й')and('АЕ' not in s))
.Print;
end.

Герасим составляет 7-буквенные коды из букв Г, Е, Р, А, С, И, М. Каждую букву нужно использовать ровно
Решение. Заметим, что, поскольку гласных букв три, а согласных — четыре, слово должно начинаться с согласной, поскольку иначе нельзя будет составить слово, в котором не будут встречаться подряд две согласные буквы. Также учтём то, что каждую букву нужно использовать только один раз.
На первое место можно поставить любую из четырех согласных. На второе — любую из трех гласных. На третье — любую из трех оставшихся согласных. На четвертое — любую из двух оставшихся гласных. На пятое — любую из двух оставшихся согласных. На шестое — одну оставшуюся гласную. На седьмое место можно поставить последнюю оставшуюся согласную. По правилу произведения, соответствующие количества способов перемножаем. Таким образом, Герасим может составить
Ответ: 144.
Приведём решение на языке Python.
import itertools
alphabet = "ГЕРАСИМ"
con = 'ГРСМ'
vol = 'ЕАИ'
ar = itertools.permutations(alphabet) #Перестановка
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e) - 1):
if (e[i] in con and e[i + 1] in con) or (e[i] in vol and e[i + 1] in vol):
flag = False
if flag == True: count += 1
print(count)
Приведём решение Ивана Свербихина на языке Python.
b = 'ЕАИ'
a = 'ГРСМ'
c = 0
for i in a:
for j in b:
for n in a:
for m in b:
for l in a:
for k in b:
for g in a:
s =i+j+n+m+l+k+g
f = set(s)
if len(f) == len(s):
c += 1
print(c)
Приведём решение Бориса Савельева на языке Python.
from itertools import*
s=permutations('ГЕРАСИМ', 7)
k=0
for i in s:
p=''.join(i)
p=p.replace('Г','*').replace('Р','*').replace('С','*').replace('М','*').replace('Е','!').replace('А','!').replace('И','!')
if p.count('**')==0 and p.count('!!')==0:
k+=1
print(k)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Г, Е, Р, А, С, И, М'.Remove(', ').Permutations(7)
.where(s->'ЕАИ'.Permutations(2).all(d->d not in s))//нельзя две гласные подряд
.where(s->'ГРСМ'.Permutations(2).all(d->d not in s))//нельзя две согласные подряд
.Count.Print;
end.

Вася составляет 6-буквенные слова из букв К, О, Т. Причем
Решение. Пусть варианта.
Таким образом,
Итого получается слова.
Ответ: 192.
Приведём решение на языке Python.
import itertools
alphabet = "КОТ"
ar = itertools.product(alphabet, repeat=6) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count("К") == 1:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import *
cnt = 0
for per in product('КОТ', repeat=6):
slovo = ''.join(per)
if slovo.count('К') == 1:
cnt += 1
print(cnt)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'К, О, Т'.Remove(', ').Cartesian(6)
.Count(s->(s.CountOf('К')=1)).Print;
end.

Ольга составляет 5-буквенные коды из букв О, Л, Ь, Г, А. Каждую букву нужно использовать ровно
Решение. Пусть
Ответ: 48.
Приведём другое решение.
Сначала найдём общее количество возможных слов, учитывая только то ограничение, что
Приведём другое решение на языке Python.
import itertools
alphabet = "ОЛЬГА"
vol = "ОА"
ar = itertools.permutations(alphabet) #Перестановка
arl = []
for e in ar:
arl.append(list(e))
count = 0
for e in arl:
flag = True
for i in range(len(e)):
if (e[0] == "Ь") or (e[i] == "Ь" and e[i-1] in vol):
flag = False
if flag:
count += 1
print(count)
Приведём другое решение на языке Python.
a1=['о','л','г','а']
a=['о','л','г','а','ь']
k=0
for b1 in a1:
for b2 in a:
for b3 in a:
for b4 in a:
for b5 in a:
s=b1+b2+b3+b4+b5
if s.count('о')==1 and s.count('л')==1 and s.count('ь')==1 and s.count('г')==1 and s.count('а')==1 :
if not('оь') in s and not('аь') in s:
k+=1
print(k)
Приведём решение Ильи Андрианова на языке Python.
from itertools import permutations
count = 0
for s in permutations('ОЛЬГА', 5):
slovo = ''.join(s)
if slovo[0] != 'Ь':
if 'АЬ' not in slovo and 'ОЬ' not in slovo:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'О, Л, Ь, Г, А'.Remove(', ').Permutations(5)
.Count(s->(s[1]<>'Ь')and('ОЬ'not in s)and('АЬ'not in s))
.Print;
end.

Иван составляет 5-буквенные коды из букв И, В, А, Н. Буквы в коде могут повторяться, использовать все буквы не обязательно, но
Решение. Сначала найдём общее количество слов: 4 · 4 · 4 · 4 · 4 = 1024. После этого вычтем из них количество слов, в которых
Ответ: 781.
Приведём другое решение на языке Python.
import itertools
alphabet = "ИВАН"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count("И") >= 1:
count += 1
print(count)
Приведём другое решение на языке Python.
symbols = 'ИВАН'
count = 0
for a in symbols:
for b in symbols:
for c in symbols:
for d in symbols:
for e in symbols:
s = a + b + c + d + e
if s.count('И') >= 1:
count += 1
print(count)
Приведём решение Мухтара Багомедова на языке Python.
import itertools
arl = []
for i in itertools.product('ИВАН', repeat=5):
if i.count('И') >= 1:
arl.append(i)
print(len(arl))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ИВАН'.Cartesian(5)
.Where(s->(s.CountOf('И')>0)//хотя бы один раз
).Count.Print;
end.

Найдите количество пятизначных восьмеричных чисел, в которых все цифры различны и никакие две четные или нечетные не стоят рядом.
Решение. Заметим, что чётных и нечётных цифр в восьмеричной системе счисления
Ответ: 504.
Приведём решение на языке Python.
import itertools
alphabet = "01234567"
ar = itertools.permutations(alphabet, 5) #Размещение
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):
flag = False
if flag:
count += 1
print(count)
Приведём решение Бориса Савельева на языке Python.
from itertools import permutations
s = permutations('01234567', 5)
k = 0
for i in s:
if i[0] != '0':
if int(i[0])%2 != int(i[1])%2 and int(i[1])%2 != int(i[2])%2 and int(i[2])%2 != int(i[3])%2 and int(i[3])%2 != int(i[4])%2:
k += 1
print(k)
Приведём решение Юрия Лысакова на языке Python.
i = 0
for i1 in '1234567': # «0» не может быть первой цифрой
for i2 in '01234567':
for i3 in '01234567':
for i4 in '01234567':
for i5 in '01234567':
s = i1 + i2 + i3 + i4 + i5
if s.count(i1) == 1 and s.count(i2) == 1 and s.count(i3) == 1 and s.count(i4) == 1 and s.count(i5) == 1:
# проверяем условие того, что буквы в слове не повторяются (встречаются по одному разу)
s1 = ''
for j in s:
if j in '0246':
s1 += '0'
if j in '1357':
s1 += '1'
# строка s1 состоит из «0» (четные цифры) и «1» (нечетные цифры), чтобы уменьшить число вариантов проверки условия что четные и нечетные цифры не стоят рядом
if s1.count('11') == 0 and s1.count('00') == 0:
i += 1
print(i)
Приведём решение Сергея Донец на PascalABC.NET:
begin
'01234567'.Permutations(5) // 8-ричная 5-значных
.Where(s->s[1] <> '0') // Первой цифрой не может быть 0
.Where(s->not s.IsMatch('[0246][0246]')) //не две чётные цифры рядом
.Where(s->not s.IsMatch('[1357][1357]')) //не две нечётные цифры рядом
.Count.Print;//504
end.

Сколько существует шестизначных чисел, делящихся
Решение. Заметим, что чётных и нечётных цифр
Ответ: 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.

Николай составляет 4-буквенные коды из букв Н, И, К, О, Л, А, Й. Каждую букву можно использовать любое количество раз, при этом код не может начинаться с буквы Й и должен содержать хотя бы одну гласную. Сколько различных кодов может составить Николай?
Решение. Найдём все слова, не начинающиеся с
Ответ: 1866.
Приведём другое решение на языке Python.
import itertools
alphabet = "НИКОЛАЙ"
ar = itertools.product(alphabet, repeat=4) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e)):
if (e[0] == "Й") or (e.count("И") + e.count("О") + e.count("А") == 0):
flag = False
if flag:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import product
count = 0
for s in product('НИКОЛАЙ', repeat=4):
slovo = ''.join(s)
if slovo[0] != 'Й':
if any(x in slovo for x in 'ИОА'):
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
s = 'НИКОЛАЙ'
count = 0
for a in s:
for b in s:
for c in s:
for d in s:
slovo = a + b + c + d
if slovo[0] != 'Й':
if any(x in slovo for x in 'ИОА'):
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Н, И, К, О, Л, А, Й'.Remove(', ').Cartesian(4)
.Where(s->s[1] <> 'Й')
.Where(s->(s.CountOf('И')>0)or((s.CountOf('О')>0))or((s.CountOf('А')>0))
).Count.Print;
end.

Руслан составляет 6-буквенные коды из букв Р, У, С, Л, А, Н. Каждую букву нужно использовать ровно один раз, при этом нельзя ставить рядом две гласные. Сколько различных кодов может составить Руслан?
Решение. Найдём все слова, в которых учитывается условие, что каждую букву нужно использовать ровно один раз: 6 · 5 · 4 · 3 · 2 · 1 = 720.
Слов, в которых гласные стоят рядом на первом и втором месте, — 2 · 1 · 4 · 3 · 2 · 1 = 48. Также гласные могут стоять рядом на втором и третьем месте, на третьем и четвёртом, на четвёртом и пятом, на пятом и шестом. Значит, всего слов, в которых гласные стоят рядом, — 48 · 5 = 240. Таким образом, ответ — 720 − 240 = 480.
Ответ: 480.
Приведём другое решение на языке Python.
import itertools
alphabet = "РУСЛАН"
vol = "УА"
ar = itertools.permutations(alphabet) #Перестановка
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[i] in vol and e[i+1] in vol:
flag = False
if flag:
count += 1
print(count)
Приведём решение Егора Чернецова на языке Python.
print(sum('УА' not in ''.join(p) and 'АУ' not in ''.join(p) for p in __import__('itertools').permutations('РУСЛАН')))
Приведём решение Егора Чернецова на языке Python.
from itertools import permutations
c = 0
for p in permutations('РУСЛАН'):
if 'УА' not in ''.join(p) and 'АУ' not in ''.join(p):
c += 1
print(c)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Р, У, С, Л, А, Н'.Remove(', ').Permutations(6)
.Count(s->('УА'not in s)and('АУ'not in s))
.Print;
end.

Виктор составляет 4-буквенные коды из букв В, И, К, Т, О, Р. Каждую букву можно использовать не более одного раза, при этом нельзя ставить рядом две гласные и две согласные. Сколько различных кодов может составить Виктор?
Решение. Заметим, что поскольку гласных букв две, а согласных четыре, слово может начинаться с как с согласной, так и с гласной. Также учтём то, что каждую букву нужно использовать не более одного раза.
Поставим на первое место любую из четырёх согласных. На второе — любую из двух гласных. На третье — любую из трёх оставшихся согласных. На четвертое — оставшуюся гласную. По правилу произведения, соответствующие количества способов перемножаем. Учитывая, что на первое место можно поставить как согласную, так и гласную, Виктор может составить
Ответ: 48.
Приведём другое решение на языке Python.
import itertools
alphabet = "ВИКТОР"
vol = "ИО"
con = "ВКТР"
ar = itertools.permutations(alphabet, 4) #Размещение
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[i] in vol and e[i+1] in vol) or (e[i] in con and e[i+1] in con):
flag = False
if flag:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'В, И, К, Т, О, Р'.Remove(', ').Permutations(4)
.where(s->'ИО'.Permutations(2).all(d->d not in s))//нельзя две гласные рядом
.where(s->'ВКТР'.Permutations(2).all(d->d not in s))//нельзя две согласные рядом
.Count.Print;
end.

Борис составляет 6-буквенные коды из букв Б, О, Р, И, С.
Решение. Найдём количество шестибуквенных слов, в которых есть ровно одна
1. Если
2. Если
При этом
Тогда количество различных кодов: 30 · (16 + 32) = 1440.
Ответ: 1440.
Приведём решение на языке Python.
import itertools
alphabet = "БОРИС"
ar = itertools.product(alphabet, repeat=6) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count("Б") == 1 and e.count("Р") == 1 and e.count("С") <= 1:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import *
cnt = 0
for per in product('БОРИС', repeat=6):
slovo = ''.join(per)
if slovo.count('Б') == 1 and slovo.count('Р') == 1 and slovo.count('С') <= 1:
cnt += 1
print(cnt)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Б, О, Р, И, С'.Remove(', ').Cartesian(6)
.where(s->(s.CountOf('Б')=1))
.where(s->(s.CountOf('Р')=1))
.where(s->(s.CountOf('С')<=1))
.Count.Print;
end.

Петя составляет 6-буквенные коды из букв П, Е, Т, Я. Каждую букву можно использовать любое количество раз или совсем не использовать, при этом нельзя ставить подряд две гласные или две согласные. Сколько различных кодов может составить Петя?
Решение. Заметим, что поскольку гласных и согласных поровну, слово может начинаться с как с согласной, так и с гласной.
Поставим на первое место любую из двух согласных. На второе — любую из двух гласных. На третье — любую из двух согласных. На четвертое — любую из двух гласных. На пятое — любую из двух согласных. На шестое — любую из двух гласных. По правилу произведения, соответствующие количества способов перемножаем. Учитывая, что на первое место можно поставить как согласную, так и гласную, Петя может составить
Ответ: 128.
Приведём другое решение на языке Python.
import itertools
alphabet = "ПЕТЯ"
vol = "ЕЯ"
con = "ПТ"
ar = itertools.product(alphabet, repeat=6) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e) - 1):
if (e[i] in vol and e[i + 1] in vol) or (e[i] in con and e[i + 1] in con):
flag = False
if flag:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import product
count = 0
for x in product('ПЕТЯ', repeat=6):
slovo = ''.join(x)
if all(pair not in slovo for pair in 'ПП ПТ ТП ТТ ЕЯ ЯЕ ЕЕ ЯЯ'.split()):
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'П, Е, Т, Я'.Remove(', ').Cartesian(6)
.where(s->'ЕЯЕЯ'.Permutations(2).all(d->d not in s))
.where(s->'ПТПТ'.Permutations(2).all(d->d not in s))
.Count
.Print;//128
end.

Регина составляет 5-буквенные коды из букв Р, Е, Г, И, Н, А.
Решение. Найдём все слова, в которых
1. Если
2. Если
Тогда количество слов, в которых
Буквы
Тогда количество различных кодов: 54 · 20 = 1080.
Приведем другое решение.
1. Найдем количество слов, в которых
2. Найдем количество слов, в которых не используется
Общее количество слов составит 540 + 540 = 1080.
Ответ: 1080.
Приведём другое решение на языке Python.
import itertools
alphabet = "РЕГИНА"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count("Г") == 1 and e.count("Р") == 1 and e.count("Н") <= 1:
count += 1
print(count)
Приведём решение Сергея Донец на PascalABC.NET:
begin
'Р, Е, Г, И, Н, А'.Remove(', ').Cartesian(5)
.Where(s->s.CountOf('Р')=1) // ровно по одному разу
.Where(s->s.CountOf('Г')=1) // ровно по одному разу
.Where(s->s.CountOf('Н')<=1)// один раз или не использовать
.Count.Print; // 1080
end.

Тимофей составляет 5-буквенные коды из букв Т, И, М, О, Ф, Е, Й.
Решение. Заметим, что
Пусть
Если
Таким образом, всего возможных слов 2700 + 7776 = 10476.
Ответ: 10476.
Приведём другое решение на языке Python.
import itertools
alphabet = "ТИМОФЕЙ"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторениями
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
flag = True
for i in range(len(e) - 1):
if e.count('Й') > 1 or e[0] == 'Й' or e[-1] == 'Й' or (e[i] == 'Й' and e[i + 1] == 'И') or (e[i + 1] == 'Й' and e[i] == 'И'):
flag = False
if flag == True: count += 1
print(count)
Приведём решение Бориса Савельева на языке Python.
from itertools import product
s=product('ТИМОФЕЙ', repeat =5)
k=0
for i in s:
p=''.join(i)
if p.count('Й')<=1 and p[0]!='Й' and p[-1]!='Й' and p.count('ИЙ')==0 and p.count('ЙИ')==0:
k+=1
print(k)
Приведём решение Сергея Донец на PascalABC.NET:
begin
'Т, И, М, О, Ф, Е, Й'.Remove(', ')
.Cartesian(5)
.Where(s->s.CountOf('Й')<=1) // не более одного раза
.Where(s->not s.ismatch('ЙИ|ИЙ'))//не может стоять рядом с буквой И
.Where(s->s[1]<>'Й') // не может стоять на первом месте
.Where(s->s[^1]<>'Й') // не может стоять на последнем месте
.Count.Print; // 10476
end.

Тимофей составляет 5-буквенные коды из букв Т, И, М, О, Ф, Е, Й.
Решение. Всего слов, в которых
Всего слов, в которых
Тогда ответ — 4651 + 3355 = 8006.
Ответ: 8006.
Приведём другое решение на языке Python.
from itertools import product
s = 'ТИМОФЕЙ'
words = []
for w in product(s, repeat=5):
if ('Т' in w) and w.count('Й') <= 1:
words.append(w)
print(len(words))
Приведём другое решение на языке Python.
import itertools
alphabet = "ТИМОФЕЙ"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count("Т") >= 1 and e.count("Й") <= 1:
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'Т, И, М, О, Ф, Е, Й'.Remove(', ')
.Cartesian(5)
.Where(s->s.CountOf('Т')>=1)
.Where(s->s.CountOf('Й')<=1)
.Count.Print;//8006
end.

Настя составляет 6-буквенные коды из букв Н, А, С, Т, Я. Каждая допустимая гласная буква может входить в код не более одного раза. Сколько кодов может составить Настя?
Решение. Рассмотрим несколько случаев. Первый случай — в словах не встречается гласных букв. Таких слов получится 3 · 3 · 3 · 3 · 3 · 3 = 729.
Второй случай — в кодовых словах встречается только одна гласная буква. Пусть
Третий случай — в словах встречаются обе допустимые гласные буквы. Пусть
Таким образом, всего слов будет 2430 + 1458 + 1458 + 729 = 6075.
Ответ: 6075.
Приведём другое решение на языке Python.
import itertools
alphabet = "НАСТЯ"
ar = itertools.product(alphabet, repeat=6) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count("А") <= 1 and e.count("Я") <= 1:
count += 1
print(count)
Приведём решение Сергея Донец на PascalABC.NET:
begin
'Н, А, С, Т, Я'.Remove(', ').Cartesian(6)
.Where(s->s.CountOf('А')<=1) // не более одного раза
.Where(s->s.CountOf('Я')<=1) // не более одного раза
.Count.Print; // 6075
end.

Вася составляет 6-буквенные слова, в которых могут быть использованы только буквы В, И, Ш, Н, Я, причём
Решение. Рассмотрим случай, когда
Если
Если
Таким образом, Вася может составить
Ответ: 4352.
Приведём другое решение на языке Python.
import itertools
alphabet = "ВИШНЯ"
ar = itertools.product(alphabet, repeat=6) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count("В") <= 1 and e[0] != "Ш" and e[-1] != "Я" and e[-1] != "И":
count += 1
print(count)
Приведём решение Сергея Донец на PascalABC.NET:
begin
'В, И, Ш, Н, Я'.Remove(', ').Cartesian(6)
.Where(s->s.CountOf('В')<=1)
.Where(s->s[1]<>'Ш')
.Where(s->s[^1]<>'И')
.Where(s->s[^1]<>'Я')
.Count.Print; // 4352
end.

Ученица составляет 5-буквенные слова из букв ГЕПАРД. При этом в каждом слове ровно одна
Решение. Имеем 5 возможных конфигураций строки:
| Г {ЕПАРД} {ЕПАРД} {ЕПАРД} {ПАРД} | |
| {ЕПРД} Г {ЕПАРД} {ЕПАРД} {ПАРД} | |
| {ЕПРД} {ЕПАРД} Г {ЕПАРД} {ПАРД} | |
| {ЕПРД} {ЕПАРД} {ЕПАРД} Г {ПАРД} | |
| {ЕПРД} {ЕПАРД} {ЕПАРД} {ЕПАРД} Г |
Следовательно, ответ — 500 + 400 + 400 + 400 + 500 = 2200.
Приведём программное решение на языке Python.
from itertools import *
c = 0
for w in product('ГЕПАРД', repeat=5):
if w.count('Г')==1 and w[0]!='А' and w[-1]!='Е':
c += 1
print(c)
Ответ: 2200.
Приведём другое решение на языке Python.
import itertools
alphabet = "ГЕПАРД"
ar = itertools.product(alphabet, repeat=5) #Размещение с повторением
arl = []
for i in ar:
arl.append(list(i))
count = 0
for e in arl:
if e.count("Г") == 1 and e[0] != "А" and e[-1] != "Е":
count += 1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'ГЕПАРД'.Cartesian(5)
.Where(s->s.CountOf('Г')=1)
.Where(s->s[1]<>'А')
.Where(s->s[^1]<>'Е')
.Count.Print; // 2200
end.
Светлана составляет коды из букв своего имени. Код должен состоять из
Решение. Заметим, что алфавит состоит из
Пусть одна
Пусть одна
Заметим, что передвигая первую
Таким образом, Светлана может составить
Ответ: 15120.
Приведём другое решение на языке Python.
import itertools
alphabet = "СВЕТЛАНА"
ar = itertools.permutations(alphabet, 8) #Размещение
arl = []
for e in ar:
arl.append(list(e))
a = set()
for e in arl:
flag = True
s = ""
for i in range(len(e)-1):
s += e[i]
if e[i] == e[i + 1]:
flag = False
if flag:
a.add(s)
print(len(a))
Приведём другое решение на языке Python.
q = 0
sett = set()
for i1 in 'СВЕТЛАНА':
for i2 in 'СВЕТЛАНА':
for i3 in 'СВЕТЛАНА':
for i4 in 'СВЕТЛАНА':
for i5 in 'СВЕТЛАНА':
for i6 in 'СВЕТЛАНА':
for i7 in 'СВЕТЛАНА':
for i8 in 'СВЕТЛАНА':
a = i1+i2+i3+i4+i5+i6+i7+i8
if a.count('А') == 2 and a.count('С') == 1 and a.count('В') == 1 and a.count('Е') ==1 and a.count('Т')==1 and a.count('Л') == 1 and a.count('Н') == 1:
if i1 != i2 and i2 != i3 and i3 != i4 and i4 != i5 and i5 != i6 and i6 != i7 and i7 != i8 and (not(a in sett)):
sett.add(a)
q += 1
print(q)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'СВЕТЛАНА'.Permutations(8).Distinct
.Count(s->s.Pairwise.All(\(pr,cr)->pr<>cr))
.Print;//15120
end.
Светлана составляет коды из букв слова РОСОМАХА. Код должен состоять из
Решение. Заметим, что алфавит состоит из
Поставим на первую позицию гласную букву, таких слов можно составить 4 · 4 · 3 · 3 · 2 · 2 · 1 · 1 = 576. Поскольку
Теперь поставим на первую позицию согласную букву, таких слов можно составить 4 · 4 · 3 · 3 · 2 · 2 · 1 · 1 = 576. Поскольку
Таким образом, ответ — 144 + 144 = 288.
Ответ: 288.
Приведём аналитическое решение Юрия Красильникова.
Из условия ясно, что либо все согласные стоят на чётных местах, а гласные - на нечётных, либо наоборот.
Число способов поставить 4 различные согласные на 4 места, очевидно, 4!, т. е. 24.
Число способов выбрать два места из четырёх для двух гласных «А» - число сочетаний из 4 по 2, т. е.4 · 3/(1 · 2)=6.
(Или по формуле перестановок с повторениями, две пары, всего 4 буквы, перестановок 4!/(2! · 2!)=6.)
Для случая ГСГСГСГС имеем 24 · 6=144 варианта, для случая СГСГСГСГ - столько же, итого 2 · 144=288.
Приведём решение на языке Python.
import itertools
alphabet = "РОСОМАХА"
vol = "ОА"
con = "РСМХ"
ar = itertools.permutations(alphabet, 8) #Размещение
arl = []
for e in ar:
arl.append(list(e))
a = set()
for e in arl:
flag = True
s = ""
for i in range(len(e)-1):
s += e[i]
if (e[i] in vol and e[i+1] in vol) or (e[i] in con and e[i+1] in con):
flag = False
if flag:
a.add(s)
print(len(a))
Приведём другое решение на языке Python.
g=['О','А',]
sog=['Р','С','М','Х']
n=0
for b1 in g:
for b2 in sog:
for b3 in g:
for b4 in sog:
for b5 in g:
for b6 in sog:
for b7 in g:
for b8 in sog:
s=b1+b2+b3+b4+b5+b6+b7+b8
if s.count('Р')==1 and s.count('О')==2 and s.count('С')==1 and s.count('М')==1 and s.count('А')==2 and s.count('Х')==1:
n+=1
print(n*2) # Так как решение для случая, когда первая буква гласная, умножаем на 2, для случая когда первая буква согласная
Приведём решение Бориса Савельева на языке Python.
from itertools import permutations
s = permutations('POCOMAXA', 8)
cnt = 0
for i in s:
p = ''.join(i)
if p.count('PC')==0 and p.count('PM')==0 and p.count('PX')==0:
if p.count('CP') == 0 and p.count('CM') == 0 and p.count('CX') == 0:
if p.count('MP') == 0 and p.count('MC') == 0 and p.count('MX') == 0:
if p.count('XP') == 0 and p.count('XC') == 0 and p.count('XM') == 0:
if p.count('OO') == 0 and p.count('OA') == 0 and p.count('AO') == 0 and p.count('AA') == 0:
cnt += 1
print(cnt//4)
Приведём решение Юрия Красильникова на языке Python.
def good(word):
return all([c in 'АО' for c in word[0::2]]) or all([c in 'АО' for c in word[1::2]])
import itertools
w = list(set([''.join(p) for p in itertools.permutations('РОСОМАХА')]))
r = [x for x in w if good(x)]
print(len(r))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'РОСОМАХА'.Permutations(8).Distinct
.Where(s -> not s.IsMatch('[ОА]{2}')) // Нет двух гласных подряд
.Where(s -> not s.IsMatch('[РСМХ]{2}')) // Нет двух согласных подряд
.Count.Print;
end.
Определите количество пятизначных чисел, записанных в восьмеричной системе счисления, в записи которых только одна цифра 6, при этом никакая нечётная цифра не стоит рядом с
Решение. В восьмеричной системе счисления всего восемь цифр: 0, 1, 2, 3, 4, 5, 6, 7.
Пусть
Пусть
Пусть
Пусть
Таким образом, можно составить всего 1029 + 378 · 2 + 294 + 882 = 2961.
Ответ: 2961.
Приведём решение Александра Козлова на языке Python.
count=0
for x1 in '1234567':
for x2 in '01234567':
for x3 in '01234567':
for x4 in '01234567':
for x5 in '01234567':
s = x1+x2+x3+x4+x5
if s.count('6') == 1:
if '16' not in s and '36' not in s and '56' not in s and '76' not in s:
if '61' not in s and '63' not in s and '65' not in s and '67' not in s:
count+=1
print(count)
Приведём решение Едигарева Фёдора на языке Python.
count = 0
for i in range(1, 34000):
a = str(oct(i))[2:]
if (len(a) == 5) and (a.count('6') == 1):
if a.index('6') in {0, len(a)-1} and int(a[abs(a.index('6') - 1)]) % 2 == 0:
count += 1
elif int(a[a.index('6')- 1]) % 2 == 0 and int(a[a.index('6') + 1]) % 2 == 0:
count += 1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import product
count = 0
for num in product('01234567', repeat=5):
s = ''.join(num)
if s[0] != '0':
if s.count('6') == 1:
if all(pair not in s for pair in '16 61 36 63 56 65 76 67'.split()):
count += 1
print(count)
Приведём решение Дмитрия Альцева на языке Python.
from itertools import product
count = 0
for num in product('01234567', repeat=5):
if num.count('6') == 1 and num[0] !='0':
x = ''.join(num)
x = x.replace('1','8').replace('3','8').replace('5','8').replace('7','8')
if x.count('86') == 0 and x.count('68') == 0:
count+=1
print(count)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'01234567'.Cartesian(5) // 8-ричная 5-значных
.Where(s->s[1] <> '0') // Первой цифрой не может быть 0
.Where(s->s.CountOf('6')=1) //только одна цифра 6
.Where(s->not s.IsMatch('[6][1357]')) // не стоит рядом с цифрой 6
.Where(s->not s.IsMatch('[1357][6]')) // не стоит рядом с цифрой 6
.Count.Print;
end.
Определите количество семизначных чисел, записанных в девятеричной системе счисления, в записи которых ровно одна
Решение. Приведём решение на языке Python.
from itertools import product
count = 0
for p in product("012345678", repeat=7):
if p.count("6") == 1 and p[0]!="0" and(p.count("1")+p.count("3") + p.count("5") + p.count("7"))==2:
count+=1
print(count)
Ответ: 368 640.
Приведём решение Александра Козлова на языке Python.
k = 0
for i1 in '12345678':
for i2 in '012345678':
for i3 in '012345678':
for i4 in '012345678':
for i5 in '012345678':
for i6 in '012345678':
for i7 in '012345678':
p = i1+i2+i3+i4+i5+i6+i7
if p.count('6') == 1 and (p.count('1') + p.count('3') + p.count('5') + p.count('7'))==2:
k += 1
print(k)
Приведём решение Сергея Донец на PascalABC.NET:
begin
'012345678'.Cartesian(7)
.Where(s->s.CountOf('6')=1)
.Where(s->
s.CountOf('1')+s.CountOf('3')+
s.CountOf('5')+s.CountOf('7')=2
).Count(s->s[1]<>'0').Print;
end.
Вероника составляет коды из букв слова ВЕРОНИКА. Код должен состоять из
Решение. Приведём решение на языке Python.
from itertools import product
count = 0
for p in product("ВЕРОНИКА", repeat=6):
gl = p.count('Е') + p.count('О') + p.count('И') + p.count('А')
sog = p.count('В') + p.count('Р') + p.count('Н') + p.count('К')
if sog < gl:
count+=1
print(count)
Ответ: 90112.
Приведём другое решение на языке Python.
count = 0
for p1 in 'ВЕРОНИКА':
for p2 in 'ВЕРОНИКА':
for p3 in 'ВЕРОНИКА':
for p4 in 'ВЕРОНИКА':
for p5 in 'ВЕРОНИКА':
for p6 in 'ВЕРОНИКА':
p = p1 + p2 + p3 + p4 + p5 + p6
gl = p.count('Е') + p.count('О') + p.count('И') + p.count('А')
sog = p.count('В') + p.count('Р') + p.count('Н') + p.count('К')
if sog > gl:
count+=1
print(count)
Приведём решение Ильи Андрианова на языке Python.
from itertools import product
count = 0
for x in product('ВЕРОНИКА', repeat=6):
slovo = ''.join(x)
gl = [x for x in slovo if x in 'ЕОИА']
sog = [x for x in slovo if x in 'ВРНК']
if len(gl) > len(sog):
count += 1
print(count)
Приведём решение Юрия Красильникова на языке Python.
from itertools import product
print(len([p for p in product('ВЕРОНИКА', repeat=6) if len([c for c in p if c in 'ЕОИА'])>3]))
Приведём решение Сергея Донец на PascalABC.NET:
begin
'ВЕРОНИКА'.Cartesian(6).Count(s-> s.Count(ch-> ch in'ЕОИА') > 3).Print;//90112
end.
Митрофан составляет коды из букв, входящих в слово МИТРОФАН. Код должен состоять из
Решение. Приведём аналитическое решение Юрия Красильникова.
Имеем
Подсчитаем К1 — количество слов, содержащих одну гласную. Выбираем одну гласную из трех и пять согласных из пяти, число способов — 3. Умножаем на число перестановок. К1 = 3 · 6!=2160.
Подсчитаем К2 — количество слов, содержащих две гласные. Выбираем две гласные из трех и четыре согласных из пяти, число способов — 3 · 5 = 15. Умножаем на число перестановок. К2 = 15 · 6! = 10800.
Подсчитаем К2р — количество слов с двумя гласными, где они стоят рядом. Из трех
Число слов — это
Приведём решение на языке Python.
s = 'МИТРОФАН'
count = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
for f in s:
s1 = a + b + c + d + e + f
if s1.count('М') <= 1 and s1.count('И') <= 1 and s1.count('Т') <= 1 and \
s1.count('Р') <= 1 and s1.count('О') <= 1 and s1.count('Ф') <= 1 and \
s1.count('А') <= 1 and s1.count('Н') <= 1 and \
s1.count('М') + s1.count('Т') + s1.count('Р') + s1.count('Ф') +s1.count('Н') > s1.count('И') + s1.count('О') + s1.count('А') and \
s1.count('АА') == 0 and s1.count('АИ') == 0 and s1.count('АО') == 0 and s1.count('ИА') == 0 and s1.count('ОА') == 0 and s1.count('ИО') == 0 and \
s1.count('ОИ') == 0 and s1.count('ОО') == 0 and s1.count('ИИ') == 0:
count += 1
print(count)
Ответ: 9360.
Приведём решение Софии Разаевой на языке Python.
from itertools import *
k = k1 = k2 = 0
c1 = 'ИОА'
c2 = 'МТРФН'
for p in permutations('МИТРОФАН', 6):
s = ''.join(p)
k1, k2 = 0, 0
k1 += (s[0] in c1)
k2 += (s[0] in c2)
for i in range(len(s)-1):
k1 += (s[i+1] in c1)
k2 += (s[i+1] in c2)
if s[i] in c1 and s[i+1] in c1:
break
else:
if k2 > k1:
k += 1
print(k)
Приведём решение Ильи Андрианова на языке Python.
from itertools import *
cnt = 0
for p in permutations('МИТРОФАН', r=6):
slovo = ''.join(p)
sogl = [x for x in slovo if x in 'МТРФН']
glas = [x for x in slovo if x in 'ИОА']
if len(sogl) > len(glas):
slovo = slovo.replace('О', 'А').replace('И', 'А')
if 'АА' not in slovo:
cnt += 1
print(cnt)
Приведём решение Бориса Савельева на языке Python.
import itertools
k=0
glas='ИОА'
for p in itertools.permutations('МИТРОФАН',6):
if sum([c in glas for c in p]) < 3 and sum([(p[i] in glas and p[i+1] in glas) for i in range(5)]) == 0:
k+=1
print(k)
Приведём решение Юрия Красильникова на языке Python.
from itertools import*
s=permutations('МИТРОФАН', 6)
k=0
for i in s:
p=''.join(i)
if (p.count('М')+p.count('Т')+p.count('Р')+p.count('Ф')+p.count('Н')>p.count('И')+p.count('О')+p.count('А')):
if p.count('ИО')==0 and p.count('ИА')==0 and p.count('ОИ')==0 and p.count('ОА')==0 and p.count('АИ')==0 and p.count('АО')==0:
k+=1
print(k)
Определите количество чисел, для записи которых в восьмеричной системе счисления требуется ровно
Решение. Приведем решение на языке Python.
from itertools import product as p
h = list(filter(lambda x: x.count('0') == 3 and '00' not in x, list(map(lambda x: ''.join(x), p('01', repeat=11)))))
p0 = len(list(p('0246', repeat=8))) * len([1 for i in h if i[0] == '0'])
p1 = len(list(filter(lambda x: x[0] != '0', p('0246', repeat=8)))) * len([1 for i in h if i[0] == '1'])
print(len(list(p('1357',repeat=3))) * (p0 + p1))
Ответ: 293601280.
Приведем решение Бориса Савельева на языке Python.
from itertools import product
s = product('НЧ', repeat = 11)
cnt1 = 0 #количество сочетаний первый нечет
cnt2 = 0 #количество сочетаний первый чет
for i in s:
p=''.join(i)
if p.count('НН') == 0 and p.count('Н') == 3:
if p[0] == 'Н':
cnt1 += 1
else:
cnt2 += 1
print(4**11*cnt1 + 3*4**10*cnt2)
Приведем решение Юрия Ворошилова на языке Python.
a=[]
k=0
for i in range(2**11):
s=bin(i)[2:]
while len(s)<11: s='0'+s
if (s.count('1')==3) and '11' not in s:
a.append(s)
if s[0]=='0': k+=1
n=(4*len(a)-k)*4**10
print(n)
Сколько существует различных трёхзначных чисел, записанных в шестиричной системе счисления, в записи которых цифры следуют слева направо в невозрастающем порядке?
Решение. Приведём решение на языке Python.
from itertools import product
alphabet = '012345'
ap=[]
for i in product(alphabet, repeat=3):
if i[0] != '0' and int(i[0]) >= int(i[1]) >= int(i[2]):
ap.append(i)
print(len(ap))
Ответ: 55.
Приведём другое решение на языке Python.
n = 0
for i in range(1,6):
for j in range(0,6):
for k in range(0,6):
if i >= j and j >= k:
n=n+1
print(n)
Приведём решение Александра Козлова на языке Python.
k = 0
for i in range(5*6**2+5*6+5+1):
s = ''
x = i
while x:
s = str(x%6) + s
x = x//6
if len(s) == 3 and s[0] >= s[1] >= s[2]:
k+=1
print(k)
Приведём решение Юрия Красильникова на языке Python.
def quantity(previous,length):
if length==2:
return previous+1
return sum([quantity(x,length-1) for x in range(previous+1)])
print(sum([quantity(x,3) for x in range(1,6)]))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'012345'.Cartesian(3)
.Where(s->s.Pairwise.All(\(pr,cr)->pr>=cr))
.Count(s->s[1]<>'0').Print;//55
end.
Сколько существует восьмеричных пятизначных чисел, не содержащих в своей записи
Решение. Приведём аналитическое решение Юрия Красильникова.
Если первая цифра числа четная, то имеется 3 способа её выбрать (цифра 2, 4 или 6). Вторая цифра может быть одной из цифр 3, 5 или 7 - т. е. три варианта. Для третьей цифры имеется три варианта выбора (цифру на первом месте мы выбирать не можем, но можем выбрать цифру 0). Для четвертой цифры - два варианта, для пятой - также два. Итого 3*3*3*2*2=108 чисел.
Если первая цифра нечётная, то имеется три способа выбора (3, 5 или 7). Вторую цифру можно выбрать четырьмя способами (все чётные цифры). Третью цифру - двумя способами, четвёртую - тремя и пятую - одним. Итого 3*4*2*3*1=72 варианта.
Всего имеется 108+72=180 различных чисел.
Приведём решение на языке Python.
s = '01234567'
count = 0
for a in '1234567':
for b in s:
for c in s:
for d in s:
for e in s:
r = a + b + c + d + e
if r.count('1') < 1 and r.count('0') <= 1 and r.count('2') <= 1 and \
r.count('3') <= 1 and r.count('4') <= 1 and r.count('5') <= 1 and \
r.count('6') <= 1 and r.count('7') <= 1 and \
r.count('00') == r.count('22') == r.count('44') == r.count('66') == 0 and \
r.count('02') == r.count('20') == r.count('04') == r.count('40') == 0 and \
r.count('06') == r.count('60') == r.count('24') == r.count('42') == 0 and \
r.count('46') == r.count('64') == r.count('26') == r.count('62') == 0 and \
r.count('33') == r.count('55') == r.count('77') == r.count('35') == 0 and \
r.count('53') == r.count('37') == r.count('73') == r.count('57') == 0 and \
r.count('75') == 0:
count += 1
print(count)
Ответ: 180.
Приведём решение Юрия Красильникова на языке Python.
from itertools import permutations
def good(s):
return s[0]!='0' and all([(s[i] in '357')!=(s[i+1] in '357') for i in range(len(s)-1)])
print(len([p for p in permutations('0234567',5) if good(p)]))
Приведём решение Виктории Зиберовы на языке Python.
count = 0
for num in range(4096,32768):
r=oct(num)[2:]
if r.count('1') == 0:
for c in range (len(r)-1):
if (int(r[c])%2)==(int(r[c+1])%2) or r.count(r[c]) > 1:
break
if c == len(r)-2:
count += 1
print(count)
Приведём решение Софии Разаевой на языке Python.
from itertools import *
k = 0
c1 = '0246'
c2 = '1357'
for p in permutations('0234567', 5):
s = ''.join(p)
for i in range(len(s)-1):
if s[i] in c1 and s[i+1] in c1 or s[i] in c2 and s[i+1] in c2:
break
else:
if s[0] != '0':
k += 1
print(k)
Приведём решение Валерия Протасова на языке Python.
from itertools import*
k=0
for x in permutations('0234567',r = 5):
if x[0]!='0':
s=''.join(x)
s = s.replace('5','3').replace('7','3')
s = s.replace('2','0').replace('4','0').replace('6','0')
if '33' not in s and '00' not in s:
k+=1
print(k)
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'01234567'.Permutations(5) // 8-ричная 5-значных
.Where(s->s[1] <> '0')// Первой цифрой не может быть 0
.Where(s->'1' not in s)
.Where(s->not s.IsMatch('[0246][0246]'))
.Where(s->not s.IsMatch('[1357][1357]'))
.Count.Print;
end.
Сколько существует 11-значных девятеричных чисел, в записи которых не встречается
Решение. Приведём аналитическое решение Юрия Красильникова.
Из условия ясно, что число может выглядеть как ЧНЧНЧНЧНЧНЧ либо как НЧНЧНЧНЧНЧН (Ч - чётная цифра, Н - нечётная).
И чётных и нечётных цифр по 4 (2, 4, 6, 8 и 1, 3, 5, 7), поэтому тех и других чисел одинаковое количество.
Рассмотрим случай ЧНЧНЧНЧНЧНЧ, т. е. число содержит 6 чётных и 5 нечётных цифр.
Для 5 нечетных цифр возможно 4**5=1024 различных вариантов, из которых 4 (11111, 33333, 55555 и 77777) содержат более 4 одинаковых цифр. Итого вариантов для нечётных цифр, когда одинаковых цифр не более 4, 1024-4=1020.
Для 6 четных цифр возможно 4**6=4096 вариантов. Из них нас не устраивают 4 варианта из 6 одинаковых цифр, а также варианты, когда 5 цифр одинаковы, а 6-я отлична от них. Таких вариантов 6*4*3=72 (6 мест для уникальной цифры, 4 способа её выбрать и 3 способа выбрать цифру, повторяющуюся 5 раз). Итого устраивающих нас вариантов 4096-4-72=4020.
Комбинируя количество вариантов для нечётных цифр с количеством вариантов для чётных, получаем 1020*4020=4100400 вариантов.
Чисел вида НЧНЧНЧНЧНЧН столько же, поэтому общее количество - это 4100400*2=8200800.
Приведём решение на языке Python.
from itertools import *
c1 = '1357'
c2 = '2468'
count = 0
for i in product(c1,c2,c1,c2,c1,c2,c1,c2,c1,c2,c1):
s = ''.join(i)
if s.count('1') < 5 and s.count('2') < 5 and s.count('3') < 5 and s.count('4') < 5 and s.count('5') < 5 and s.count('6') < 5 and s.count('7') < 5 and s.count('8') < 5:
count += 1
print(count * 2)
Ответ: 8200800.
Приведём решение Михаила Глинского на языке Python.
from itertools import *
c1 = '1357'
c2 = '2468'
count = 0
for i in product(c1,c2,c1,c2,c1,c2,c1,c2,c1,c2,c1):
s = ''.join(i)
flag = 1
for i in range(10):
if s.count (str(i)) > 4:
flag = 0
break
if flag:
count += 1
print(count * 2)
Приведём решение Юрия Красильникова на языке Python.
from itertools import product
m = len([p for p in product('1357',repeat=5) if max([p.count(x) for x in p])<=4])
n = len([p for p in product('2468',repeat=6) if max([p.count(x) for x in p])<=4])
print( 2*m*n )
Приведём решение Сергея Донец на PascalABC.NET:
begin
var oddChars := '1357'; // Строка с нечётными цифрами
var evenChars := '2468'; // Строка с чётными цифрами
// m: количество комбинаций 5 нечётных с max повторений <=4
var m := oddChars.CartesianPower(5)
.Where(combo -> combo.GroupBy(c -> c).Max(g -> g.Count) <= 4)
.Count;
// n: количество комбинаций 6 чётных с max повторений <=4
var n := evenChars.CartesianPower(6)
.Where(combo -> combo.GroupBy(c -> c).Max(g -> g.Count) <= 4)
.Count;
Print(2 * m * n); // 8200800
end.
Все десятибуквенные коды, составленные из букв, входящих в слово СКАНЕР, расположены в алфавитном порядке и пронумерованы, начиная
1. АААААААААА
2. АААААААААЕ
3. АААААААААК
4. АААААААААН
5. АААААААААР
Определите количество кодов, для которых одновременно выполнены следующие условия:
1) номер кода в списке делится
2) первая буква кода — согласная;
3) код содержит ровно одну
Решение. Приведём аналитическое Юрия Красильникова решение.
Заметим, что у слов, номер которых делится на 3, последняя буква - либо К, либо С.
Если буква Р стоит на первом месте, то для букв с 2-й по 9-ю имеется по 5 вариантов (все буквы, кроме Р), а для 10-й - два (К или С).
Таких слов 58 · 2 = 781250.
Если буква Р стоит одном из мест 2-9, то для первой буквы у нас три варианта (С, К или Н), для каждой из семи букв со 2-й по 9-ю (не считая буквы Р) - 5 вариантов, 8 способов выбрать место для буквы Р (от 2-й до 9-й) и два варианта для последней буквы.
Таких слов 3 · 8 · 57 · 2= = 3750000.
Всего слов 781250+3750000 = 4531250.
Приведём решение на языке Python.
from itertools import product
count = 0
m=[]
for p in product(sorted("СКАНЕР"), repeat=10):
count+=1
if count%3==0 and p[0]!= 'А' and p[0]!='Е' and p.count("Р") == 1:
m.append(count)
print(len(m))
Ответ: 4531250.
Определите количество 9-ричных 6-значных чисел, которые не начинаются с нечетных цифр, не оканчиваются
Решение. Приведём аналитическое решение Юрия Красильникова.
Девятеричных чисел, которые начинаются на четные цифры и не заканчиваются на 2 или 3, имеется 4 · 94 · 7=183708.
Вычтем количество чисел, которые не содержат единиц или содержат одну единицу.
Чисел, не содержащих единиц, 4 · 84 · 6=98304.
Чисел, которые содержат одну единицу на 2-м месте, 4 · 83 · 6=12288.
Столько же чисел содержит одну единицу на 3-м, 4-м и 5-м местах.
Наконец, чисел, которые содержат единицу на последнем месте, 4 · 84=16384.
А чисел, отвечающих условию задачи, 183708-98304-4 · 12288-16384=19868.
Приведём решение на языке Python.
count = 0
for x1 in "2468":
for x2 in "012345678":
for x3 in "012345678":
for x4 in "012345678":
for x5 in "012345678":
for x6 in "0145678":
s = x1+x2+x3+x4+x5+x6
if s.count("1") >= 2:
count += 1
print(count)
Ответ: 19 868.
Приведём решение Вячеслава Горбунова на языке Python.
from itertools import *
count = 0
for x in product('012345678',repeat=6):
s=''.join(x)
if s[0] != '0' and s[0] != '1' and s[0] != '3' and s[0] != '5'and s[0] != '7'and s[-1] != '2' and s[-1] != '3' and s.count('1') >= 2:
count += 1
print(count)
Приведём решение Юрия Красильникова на языке Python.
import itertools
a = [p for p in itertools.product('012345678',repeat=6) if p[0] in '2468' and not p[-1] in '23' and p.count('1')>=2]
print(len(a))
Определите количество 12-ричных шестизначных чисел, в записи которых ровно одна
Решение. Приведём решение на языке Python.
count = 0
for x1 in "123456789AB":
for x2 in "0123456789AB":
for x3 in "0123456789AB":
for x4 in "0123456789AB":
for x5 in "0123456789AB":
for x6 in "0123456789AB":
s = x1+x2+x3+x4+x5+x6
if s.count("7") == 1:
if s.count("A") + s.count("B") <=3:
count += 1
print(count)
Ответ: 888669.
Приведём другое решение на языке Python.
from itertools import product
count = 0
for s in product("0123456789AB", repeat = 6):
if s.count("7") == 1 and s[0] != "0":
if s.count("A") + s.count("B") <=3:
count += 1
print(count)
Сколько существует натуральных чисел, не превышающих 855 000 000, запись которых в системе счисления с основанием 15 содержит ровно 8 различных цифр?
Решение. Переведем число 855 000 000 в систему счисления с основанием 15:
n = 855_000_000
a = '0123456789abcde'
cc15 = ''
while n != 0:
cc15 = a[n%15] + cc15
n //= 15
print(cc15)
Получим число 500DD50015. Следовательно, не может быть числа с неповторяющимися числами начинающегося с числа больше 4. Тогда на первом месте может стоять одно из чисел ряда 1234, на втором месте любое из оставшихся чисел, кроме повторяющегося, всего 14 вариантов. На третьем месте любое из оставшихся чисел, кроме повторяющегося, всего 13 вариантов и т. д.
Тогда количество натуральных чисел, не превышающих 855 000 000, запись которых в системе счисления с основанием 15 содержит ровно 8 различных цифр равно: 4 · 14 · 13 · 12 · 11 · 10 · 9 · 8 = 69 189 120.
Ответ: 69 189 120.
Приведём решение на языке Python.
from itertools import permutations
count = 0
for p in permutations('0123456789abcde', r = 8):
if p[0] in '1234':
if int(''.join(p),15) <= 855000000:
count += 1
print(count)
Сколько существует натуральных чисел, не превышающих 738 000 000, запись которых в системе счисления с основанием 14 содержит ровно 8 различных цифр?
Решение. Переведем число 738 000 000 в систему счисления с основанием 14:
n = 738_000_000
alph = '0123456789ABCD'
ans = ''
while n:
ans = alph[n % 14] + ans
n //= 14
print(ans)
Получим число 7002A61A14. Следовательно, не может быть числа с неповторяющимися числами начинающегося с числа больше 6. Тогда на первом месте может стоять одно из чисел ряда 123456, на втором месте любое из оставшихся чисел, кроме повторяющегося, всего 13 вариантов. На третьем месте любое из оставшихся чисел, кроме повторяющегося, всего 12 вариантов и т. д.
Тогда количество натуральных чисел, не превышающих 738 000 000, запись которых в системе счисления с основанием 14 содержит ровно 8 различных цифр равно: 6 · 13 · 12 · 11 · 10 · 9 · 8 · 7 = 51 891 840.
Ответ: 51 891 840.
Приведём решение Бориса Савельева на языке Python.
from itertools import permutations
s=permutations('0123456789ABCD', 8)
k=0
for i in s:
p=''.join(i)
if int(p,14) <= 738000000 and p[0]!='0':
k+=1
print(k)
Примечание. Решение малоэффективное по времени выполнения. Время выполнения ≈ 1 минута.
| № п/п | № задания | Ответ |
| 1 | 7667 | 162 |
| 2 | 7986 | 256 |
| 3 | 8098 | 405 |
| 4 | 9361 | 80 |
| 5 | 9760 | 324 |
| 6 | 7306 | 216 |
| 7 | 11306 | 500 |
| 8 | 13459 | 128 |
| 9 | 13486 | 162 |
| 10 | 13540 | 5400 |
| 11 | 14225 | 100 |
| 12 | 16037 | 160 |
| 13 | 16439 | 729 |
| 14 | 16886 | 504 |
| 15 | 17328 | 144 |
| 16 | 18079 | 192 |
| 17 | 18491 | 48 |
| 18 | 18558 | 781 |
| 19 | 26953 | 504 |
| 20 | 26982 | 1296 |
| 21 | 27009 | 1866 |
| 22 | 27268 | 480 |
| 23 | 27379 | 48 |
| 24 | 27539 | 1440 |
| 25 | 28685 | 128 |
| 26 | 29195 | 1080 |
| 27 | 33180 | 10476 |
| 28 | 33510 | 8006 |
| 29 | 35982 | 6075 |
| 30 | 36021 | 4352 |
| 31 | 37143 | 2200 |
| 32 | 40724 | 15120 |
| 33 | 46966 | 288 |
| 34 | 47212 | 2961 |
| 35 | 48429 | 368640 |
| 36 | 51977 | 90112 |
| 37 | 55595 | 9360 |
| 38 | 56508 | 293601280 |
| 39 | 58241 | 55 |
| 40 | 60250 | 180 |
| 41 | 63024 | 8200800 |
| 42 | 68241 | 4531250 |
| 43 | 69886 | 19868 |
| 44 | 69912 | 888669 |
| 45 | 75245 | 69189120 |
| 46 | 75272 | 51891840 |