Задание 25. Обработка целочисленной информации

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

ВАРИАНТ 1

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

— символ «?» означает ровно одну произвольную цифру;

— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

Например, маске 123*4?5 соответствуют числа 123405 и 12300405.

Среди натуральных чисел, не превышающих 108, найдите все числа, соответствующие маске 11*223, делящиеся на 149 без остатка.

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце  — соответствующие им результаты деления этих чисел на 149.

Количество строк в таблице для ответа избыточно.

Решение и ответ
 

from fnmatch import *
for x in range(0, 10**8+1, 149):
    if fnmatch(str(x), '11*223'):
         print(x, x//149)

Ответ:
1166223 7827
11000223 73827
11149223 74827
11298223 75827
11447223 76827
11596223 77827
11745223 78827
11894223 79827

ВАРИАНТ 2

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

— символ «?» означает ровно одну произвольную цифру;

— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

Например, маске 123*4?5 соответствуют числа 123405 и 12300405.

Среди натуральных чисел, не превышающих 108, найдите все числа, соответствующие маске 32*823, делящиеся на 123 без остатка.

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце  — соответствующие им результаты деления этих чисел на 123.

Количество строк в таблице для ответа избыточно.

Решение и ответ
 

Решение аналогично 1

Ответ:

32090823 260901
32213823 261901
32336823 262901
32459823 263901
32582823 264901
32705823 265901
32828823 266901
32951823 267901

ВАРИАНТ 3

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

— символ «?» означает ровно одну произвольную цифру;

— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

Например, маске 123*4?5 соответствуют числа 123405 и 12300405.

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске 32*21?4, делящиеся на 2049 без остатка.

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце  — соответствующие им результаты деления этих чисел на 2049.

Количество строк в таблице для ответа избыточно.

Решение и ответ
 

from fnmatch import *
for x in range(0, 10**9+1, 2049):
    if fnmatch(str(x), '32*21?4'):
         print(x, x//2049)

Ответ:
321992154 157146
324082134 158166
326172114 159186
329102184 160616

ВАРИАНТ 4

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

— символ «?» означает ровно одну произвольную цифру;

— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

Например, маске 123*4?5 соответствуют числа 123405 и 12300405.

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске 33*21?7, делящиеся на 2079 без остатка.

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце  — соответствующие им результаты деления этих чисел на 2079.

Количество строк в таблице для ответа избыточно.

Решение и ответ

Решение аналогично варианту 3

Ответ

336222117 161723
337012137 162103
337802157 162483
338592177 162863
339382197 163243

ВАРИАНТ 5

Пусть М - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение М равным 0. 

Напишите программу, которая перебирает целые числа, большие 860000, в порядке возрастания и ищет среди них такие, для которых значение М оканчивается на 18. Вывести первые пять найденных чисел и соответствующие им значения М.

Формат вывода: для каждого из пяти найденных чисел в отдельной строке сначала выводится само число, затем значение М.
Строки выводятся в порядке возрастания найденных чисел.Например, для числа 20, М=10 - 2 = 8

 

Решение и ответ

k=0
x = 860001
while k < 5:
    for i in range (2, int(x**0.5)+1):
        if x % i == 0:
            M = x // i - i
            break
    if M % 100 == 18:
        k += 1
        print (x, M)
    x += 1

Ответ
860040 430018
860163 286718
860219 27718
860240 430118
860440 430218

ВАРИАНТ 6

Пусть М - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение М равным 0. Напишите программу, которая перебирает целые числа, большие 860000, в порядке возрастания и ищет среди них такие, для которых значение М оканчивается на 30. Вывести первые пять найденных чисел и соответствующие им значения М.

Формат вывода: для каждого из пяти найденных чисел в отдельной строке сначала выводится само число, затем значение М.
Строки выводятся в порядке возрастания найденных чисел.Например, для числа 20, М=10 - 2 = 8

Решение и ответ

Решение аналогично варианту 5

Ответ

860064 430030
860199 286730
860264 430130
860464 430230
860499 286830

ВАРИАНТ 7

Пусть М - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение М равным 0. Напишите программу, которая перебирает целые числа, меньшие 800000, в порядке убывания и ищет среди них такие, для которых значение М кратно 17 (ноль числу 17 не кратен). Вывести первые пять найденных чисел и соответствующие им значения М.

Формат вывода: для каждого из пяти найденных чисел в отдельной строке сначала выводится само число, затем значение М.
Строки выводятся в порядке убывания найденных чисел.Например, для числа 20, М=10 - 2 = 8 

Решение и ответ

k=0
x = 799999

while k < 5:
    M = 0
    for i in range (2, int(x**0.5)+1):
        if x % i == 0:
            M = x//i - i
            break
    if M % 17 == 0 and M != 0:
        k += 1
        print(x, M)
    x -= 1

Ответ: 
799995 266662
799990 399993
799967 114274
799956 399976
799922 399959

ВАРИАНТ 8

Пусть М - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение М равным 0. Напишите программу, которая перебирает целые числа, меньшие 860000, в порядке убывания и ищет среди них такие, для которых значение М кратно 23 (ноль числу 23 не кратен). Вывести первые пять найденных чисел и соответствующие им значения М.

Формат вывода: для каждого из пяти найденных чисел в отдельной строке сначала выводится само число, затем значение М.
Строки выводятся в порядке убывания найденных чисел.Например, для числа 20, М=10 - 2 = 8

Решение и ответ

Решение аналогично варианту 7

Ответ: 
799995 266662
799990 399993
799987 16974
799944 399970
799907 27554

ВАРИАНТ 9

Пусть F - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение F равным 0. Напишите программу, которая перебирает целые числа, большие 850000, в порядке возрастания и ищет среди них такие, для которых значение F не равно 0 и делится нацело на 7. Программа должна вывести первые шесть таких чисел и соответствующие им значения F.

Формат вывода: для каждого из 6 найденных чисел в отдельной строке сначала выводится само число, затем значение F.
Строки выводятся в порядке возрастания найденных чисел.Например, для числа 105, F=35 - 3  = 32 

Решение и ответ

k=0
x = 850001

while k < 6:
    for i in range (2, int(x**0.5)+1):
        if x % i == 0:
            F = x // i - i
            break
    if F % 7 == 0 and F != 0:
        k += 1
        print(x, F)
    x += 1

Ответ: 
850003 121422
850005 283332
850014 425005
850028 425012
850042 425019
850047 283346

ВАРИАНТ 10

Пусть F - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение F равным 0. Напишите программу, которая перебирает целые числа, большие 850000, в порядке возрастания и ищет среди них такие, для которых значение F не равно 0 и делится нацело на 5. Программа должна вывести первые шесть таких чисел и соответствующие им значения F.

Формат вывода: для каждого из 6 найденных чисел в отдельной строке сначала выводится само число, затем значение F.
Строки выводятся в порядке возрастания найденных чисел.Например, для числа 105, F=35 - 3  = 32

Решение и ответ

Решение аналогично варианту 9

Ответ: 
850004 425000

850014 425005
850024 425010
850025 170000
850029 283340
850034 425015

ВАРИАНТ 11

Пусть F - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение F равным 0. Напишите программу, которая перебирает целые числа, большие 850000, в порядке возрастания и ищет среди них такие, для которых значение F не равно 0 и делится нацело на 3. Программа должна вывести первые шесть таких чисел и соответствующие им значения F.

Формат вывода: для каждого из 6 найденных чисел в отдельной строке сначала выводится само число, затем значение F.
Строки выводятся в порядке возрастания найденных чисел.Например, для числа 105, F=35 - 3  = 32

Решение и ответ

k=0
x = 850001

while k < 6:
    for i in range (2, int(x**0.5)+1):
        if x % i == 0:
            F = x // i - i
            break
    if F % 3 == 0 and F != 0:
        k += 1
        print(x, F)
    x += 1 

Ответ:
850003 121422

850005 283332
850006 425001
850012 425004
850015 169998
850018 425007

ВАРИАНТ 12

Пусть F - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение F равным 0. Напишите программу, которая перебирает целые числа, большие 850000, в порядке возрастания и ищет среди них такие, для которых значение F не равно 0 и делится нацело на 11. Программа должна вывести первые шесть таких чисел и соответствующие им значения F.

Формат вывода: для каждого из 6 найденных чисел в отдельной строке сначала выводится само число, затем значение F.
Строки выводятся в порядке возрастания найденных чисел.Например, для числа 105, F=35 - 3  = 32

Решение и ответ

Решение аналогично варианту 11

Ответ:
850018 425007
850019 29282
850023 283338
850040 425018
850062 425029
850084 425040

ВАРИАНТ 13

Пусть F - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение F равным 0. Напишите программу, которая перебирает целые числа, большие 850000, в порядке возрастания и ищет среди них такие, для которых значение F не равно 0 и делится нацело на 13. Программа должна вывести первые шесть таких чисел и соответствующие им значения F.

Формат вывода: для каждого из 6 найденных чисел в отдельной строке сначала выводится само число, затем значение F.
Строки выводятся в порядке возрастания найденных чисел.Например, для числа 105, F=35 - 3  = 32

Решение и ответ

Решение аналогично варианту 11

Ответ: 
850022 425009
850048 425022
850053 283348
850074 425035
850099 7410
850100 425048

ВАРИАНТ 14

Напишите программу, которая перебирает целые числа, большие 550000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный делитель, не равный самому числу, не является простым числом. Программа должна найти и вывести первые шесть таких чисел и соответствующие им значения упомянутых делителей.

Формат вывода: для каждого из 6 таких найденных чисел в отдельной строке сначала выводится само число, затем упомянутый делитель.
Строки выводятся в порядке возрастания найденных чисел.Например, для числа 105,наибольший натуральный делитель 35 не является простым, для числа 15 наибольший натуральный делитель 5 - простое число, а для числа 13 такого делителя не существует.

Решение и ответ

def pr(n): # функция, которая проверяет простое ли число
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

k=0
x = 550001

while k < 6:
    for i in range (2, int(x**0.5)+1):
        if x % i == 0:
            D = x//i
            if not(pr(D)):
                k += 1
                print (x, D)
                break
    x += 1

Ответ: 
550002 275001
550004 275002
550005 183335
550008 275004
550010 275005
550011 183337

ВАРИАНТ 15

Напишите программу, которая перебирает целые числа, большие 450000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный делитель, не равный самому числу, не является простым числом. Программа должна найти и вывести первые шесть таких чисел и соответствующие им значения упомянутых делителей.

Формат вывода: для каждого из 6 таких найденных чисел в отдельной строке сначала выводится само число, затем упомянутый делитель. Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 105,наибольший натуральный делитель 35 не является простым, для числа 15 наибольший натуральный делитель 5 - простое число, а для числа 13 такого делителя не существует.

 

Решение и ответ

Решение аналогично варианту 14

Ответ: 
450002 225001
450004 225002
450006 225003
450007 26471
450008 225004
450009 150003

ВАРИАНТ 16

Напишите программу, которая перебирает целые числа, большие 350000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный делитель, не равный самому числу, не является простым числом. Программа должна найти и вывести первые шесть таких чисел и соответствующие им значения упомянутых делителей.

Формат вывода: для каждого из 6 таких найденных чисел в отдельной строке сначала выводится само число, затем упомянутый делитель. Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 105,наибольший натуральный делитель 35 не является простым, для числа 15 наибольший натуральный делитель 5 - простое число, а для числа 13 такого делителя не существует.

 

Решение и ответ

Решение аналогично варианту 14

Ответ:
350001 116667
350002 175001
350004 175002
350007 116669
350008 175004
350009 31819

ВАРИАНТ 17

Напишите программу, которая перебирает целые числа, большие 650000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный делитель, не равный самому числу, не является простым числом. Программа должна найти и вывести первые шесть таких чисел и соответствующие им значения упомянутых делителей.

Формат вывода: для каждого из 6 таких найденных чисел в отдельной строке сначала выводится само число, затем упомянутый делитель. Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 105,наибольший натуральный делитель 35 не является простым, для числа 15 наибольший натуральный делитель 5 - простое число, а для числа 13 такого делителя не существует.

 

Решение и ответ

Решение аналогично варианту 14

Ответ: 
650001 216667
650003 28261
650004 325002
650005 130001
650006 325003
650007 216669

ВАРИАНТ 18

Напишите программу, которая перебирает целые числа, большие 750000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный делитель, не равный самому числу, не является простым числом. Программа должна найти и вывести первые шесть таких чисел и соответствующие им значения упомянутых делителей.

Формат вывода: для каждого из 6 таких найденных чисел в отдельной строке сначала выводится само число, затем упомянутый делитель. Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 105,наибольший натуральный делитель 35 не является простым, для числа 15 наибольший натуральный делитель 5 - простое число, а для числа 13 такого делителя не существует.

Решение и ответ

Решение аналогично варианту 14

Ответ:
750001 107143
750002 375001
750003 250001
750004 375002
750006 375003
750008 375004

ВАРИАНТ 19

Пусть S - сумма различных натуральных делителей целого числа, являющихся простыми числами, не считая самого числа. Напишите программу, которая перебирает целые числа, большие 550000, в порядке возрастания и ищет среди них такие, для которых значение S оканчивается на цифру 1. Программа должна найти и вывести первые пять таких чисел и соответствующие им значения S.

Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем значение S.
Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 20, S = 2 + 5 = 7

Решение и ответ

def pr(n):
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

k = 0
x = 550001
while k < 5:
    S = 0
    for i in range (2, x//2):
        if x % i==0 and pr(i):
            S +=i
    if S % 10 == 1:
        print (x, S)
        k += 1   
    x += 1

Ответ: 
550023 1461
550025 461
550030 4251
550043 1501
550045 4811

ВАРИАНТ 20

Пусть S - сумма различных натуральных делителей целого числа, являющихся простыми числами, не считая самого числа. Напишите программу, которая перебирает целые числа, большие 550000, в порядке возрастания и ищет среди них такие, для которых значение S оканчивается на цифру 7. Программа должна найти и вывести первые пять таких чисел и соответствующие им значения S.

Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем значение S. Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 20, S = 2 + 5 = 7

Решение и ответ

Решение аналогично варианту 19

Ответ:
550018 2337
550059 1197
550087 257
550099 1217
550137 117

Добавить комментарий


РСЯ футер

© 2017 Компьютерный клуб "КОД". Все права защищены.