30 мая 2025 г.

Программирование. Задание № 25 "Перебор чисел. Делители числа"

Пусть М – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение М равным нулю. Например, для числа 20 имеем М = 2 + 10 = 12. Напишите программу, которая перебирает целые числа, большие 700 000, в порядке возрастания и ищет среди них такие, для которых М оканчивается на 4. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – соответствующие им значения М.

Решение: напишем программу на языке Phyton

for n in range (700001,700050):
    for d in range(2,n):
        if n%d == 0:
            m = d + n//d
            if m%10 == 4:
                print(n,m)
            break

Вывод:

700004 350004
700009 41194
700023 233344
700024 350014
700044 350024
700045 140014
700049 100014

Ответ:

700004 350004
700009 41194
700023 233344
700024 350014
700044 350024

Программирование. Задание № 25 "Перебор чисел. Делители числа"

Напишите программу, которая перебирает целые числа, большие 1 125 000, в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру 7 и не равный ни самому числу, ни числу 7. В ответе запишите в первой строке таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – наименьший делитель для каждого из них, оканчивающийся цифрой 7, не равный ни самому числу, ни числу 7.

Решение: напишем программу на языке Phyton

for n in range (1125001,1125020):
    d=17
    while d < n:
        if n%d == 0:
            print(n,d)
            break
        d+=10

Вывод:

1125003 467
1125006 97
1125009 17
1125011 3187
1125012 177
1125014 51137
1125015 537
1125016 140627
1125019 160717

Ответ:

1125003 467
1125006 97
1125009 17
1125011 3187
1125012 177

28 мая 2025 г.

Программирование. Задание № 25 "Маски"

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

- символ «?» означает ровно одну произвольную цифру;
- символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Среди натуральных чисел, не превышающих 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 291293
5421036357 291783
5451134337 293403
545163597 29343
5461538577 293963
5481232317 295023
5491636557 295583

Ответ:
545163597 29343
5411932647 291293
5421036357 291783
5451134337 293403
5461538577 293963
5481232317 295023
5491636557 295583

Программирование. Задание № 25 "Маски"

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «?» означает ровно одну произвольную цифру;
- символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске 12345?6?8 и делящиеся на 17 без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им частные от деления на 17.

Решение: напишем программу на языке Phyton
for i1 in range (0,10):
    for i2 in range (0,10):
        s='12345' + str(i1) + '6' + str(i2) + '8'
        n = int(s)
        if n%17==0: print(n,n//17)

Вывод:
123450668 7261804
123451688 7261864
123456618 7262154
123457638 7262214
123458658 7262274
123459678 7262334
Ответ:
123450668 7261804
123451688 7261864
123456618 7262154
123457638 7262214
123458658 7262274
123459678 7262334

Программирование. Задание № 25 "Маски"

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300425.
Найдите все натуральные числа, не превышающие 1010, которые соответствуют маске 4*4736*1 и делятся на 7993 без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на 7993.

Решение: напишем программу на языке Phyton
for i in range(55,1252095):
    a = i*7993
    s = str(a)
    if s[0] =='4' and s.find('4736') > 0 and s[-1] =='1':
        print(a,i)

Вывод:
44736821 5597
4064736241 508537
4303247361 538377
4347368721 543897
4447361151 556407
4473658121 559697
4794736931 599867

Ответ:
44736821 5597
4064736241 508537
4303247361 538377
4347368721 543897
4447361151 556407
4473658121 559697
4794736931 599867