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

30 апреля 2025 г.

Программирование. Задание № 17 "Обработка целочисленных данных"

(ЕГЭ-2024) В файле 17-404.txt содержится последовательность натуральных чисел, не превышающих 100 000. Определите количество пар элементов последовательности, в которых остаток от деления хотя бы одного из двух элементов пары на 55 равен минимальному элементу последовательности. В ответе запишите количество найденных пар, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

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

f = open('17-404.txt')
m=100000
for i in range(1,5001):
    a = int(f.readline())
    if m > a:
        m = a
f.close()
print('минимальный элемент =',m)
#
f = open('17-404.txt')
n=0
ms=200000
a = int(f.readline())
for i in range (2,5001):
    b =  int(f.readline())
    if a % 55 == m or b % 55 == m:
        n+=1
        if ms > a + b:
            ms = a + b
    a = b
#
print('количество пар',n)
print('минимальная сумма',ms)

Вывод:
минимальный элемент = 42
количество пар 201
минимальная сумма 2942

Ответ: 201 2942

Программирование. Задание № 17 "Обработка целочисленных данных"

В файле 123.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 9999 включительно. Рассматривается множество элементов последовательности, которые удовлетворяют следующим условиям:
а) Число в шестнадцатеричной записи оканчивается цифрой «С»;
б) Число делится на 5, но не делится на 6, 13, 17.

Найдите сумму таких чисел и их количество.

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

s=0
n=0
f = open('123.txt')
for i in range(1,2001):
    x = f.readline()
    a = int(x)
    x16=hex (a)
    if x16[-1] == 'c':
        if a%5 == 0 and a%6 != 0 and a%13 != 0 and a%17 != 0:
            s+=a
            n+=1
print(s)
print(n)