Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «?» означает ровно одну произвольную цифру;
- символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 54?1?3*7, делящиеся на 18579 без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце - соответствующие им результаты деления этих чисел на 18579.
Решение: напишем программу на языке Phyton
for i1 in range(0,10):
for i2 in range(0,10):
s = '54' + str(i1) + '1' + str(i2) + '37'
n = int(s)
if n%18579 == 0: print (n,n//18579)
for i3 in range(0,1000):
d=len(str(i3))
k=3-d
for i4 in range(0,k+1):
s='54'+str(i1)+'1'+str(i2)+'3'+\
i4*'0'+str(i3)+'7'
n = int(s)
if n%18579 == 0: print (n,n//18579)
Вывод:
5411932647 2912935421036357 291783
5451134337 293403
545163597 29343
5461538577 293963
5481232317 295023
5491636557 295583
Ответ:
545163597 293435411932647 291293
5421036357 291783
5451134337 293403
5461538577 293963
5481232317 295023
5491636557 295583
Комментариев нет:
Отправить комментарий