Ошибка.
Попробуйте повторить позже
Среди целых чисел, принадлежащих числовому отрезку [173225; 217437], найдите числа, которые представляют собой произведение двух различных простых делителей, заканчивающихся на одну и ту же цифру. Запишите в ответе количество таких чисел и минимальное из них без разделителей.
def simple(x):# Функция,которая проверяет является число простым или нет return x > 1 and all(x % y for y in range(2,int(x**0.5)+1)) def divs(x):# Функция,которая возвращает делители определённого числа d = set() for i in range(2,int(x**0.5)+1): if x % i == 0: d |= {i,x//i} return sorted(d) ans = [] for x in range(173225,217438): d = [i for i in divs(x) if simple(i)] #В списке d будут храниться делители числа x,которые при этом являются простыми числами if len(d) == 2 and (d[0] % 10 == d[1] % 10) and d[0]*d[1] == x: ans += [x] print(len(ans),min(ans))
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [2410000;2410100], простые числа. Выведите все найденные простые числа в порядке возрастания через пробел.
# Функция, проверяющая, является ли число простым def is_prime(n): for i in range(2, int(n ** 0.5) + 1): # Если i делитель n, то n не простое if n % i == 0: return False # Если нашли делитель, то число не простое # Если цикл завершился без прерывания, то у числа нет делителей, кроме 1 и самого числа return True # Если не нашли делителей, то число простое for i in range(2410000, 2410100 + 1): # Если число i простое, то выводим его if is_prime(i): print(i, end=’ ’)
Ошибка.
Попробуйте повторить позже
Среди целых чисел, принадлежащих числовому отрезку [156367;178945], найдите числа, которые представляют собой произведение двух различных простых делителей, не считая единицы и самого числа. Запишите в ответе через пробел количество таких чисел и минимальное их них.
# Функция для выявления простых чисел def isSimple(n): for d in range(2, int(n**0.5)+1): if n % d == 0: return False return True # Множество для подходящих чисел nums = set() # i и j — предполагаемые делители for i in range(2, 100000): for j in range(i+1, 100000): # Если произведение уже выше дозволенного значения, то прерываем цикл if i*j > 178945: break # Здесь проверяем, не меньше ли произведение, чем левая грань отрезка if i*j >= 156367: if isSimple(i) and isSimple(j): nums.add(i*j) print(len(nums), min(nums))
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [9080350; 9080445], простые числа. Выведите все найденные простые числа в порядке возрастания, слева от каждого из них выведите его номер по порядку, где число 9080350 имеет номер 1, число 9080351 номер 2.
Пример ввода ответа: № число № число ...
# Функция для выявления простых чисел def isSimple(n): for d in range(2, int(n**0.5)+1): if n % d == 0: return False return True n = 1 # Текущий номер числа for i in range(9080350, 9080446): if isSimple(i): print(n, i) n += 1
Ошибка.
Попробуйте повторить позже
Среди целых чисел, принадлежащих числовому отрезку [351627;428763], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе количество таких чисел и их среднее арифметическое. Для среднего арифметического запишите только целую часть числа.
# Функция для выявления простых чисел def isSimple(n): for d in range(2, int(n**0.5)+1): if n % d == 0: return False return True # Множество для подходящих чисел nums = set() # i и j содержат предполагаемые множители for i in range(2, 250000): for j in range(i+1, 250000): # Если произведение уже выше дозволенного значения, то прерываем цикл if i*j > 428763: break # Здесь проверяем, не меньше ли произведение, чем левая грань отрезка if i*j >= 351627: if isSimple(i) and isSimple(j): nums.add(i*j) print(len(nums), sum(nums)//len(nums))
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [13194; 22052], пары взаимно простых чисел, имеющих ровно четыре различных натуральных делителя, не считая единицы и самого числа, и выводит на экран такую пару с наибольшей суммой элементов. В ответе укажите элементы этой пары через пробел в порядке возрастания.
mx = 0 # Макс. сумма mxe = () # Элементы с макс. суммой # Идём с самых больших чисел, чтобы быстрее найти пару с максимальной суммой for i in range(22052, 13193, -1): d1 = set() # Делители первого числа for j in range(i-1, 13193, -1): # Если пара не больше текущего максимума, то рассматривать её нет смысла if i+j < mx: break f = 0 d2 = set() # Делители второго числа for d in range(2, int(j**0.5)+1): # Если делители совпадают, то пропускаем пару if i % d == 0 and j % d == 0: f = 1 break # Добавляем делители в множества if i % d == 0: d1.add(d) d1.add(i//d) if j % d == 0: d2.add(d) d2.add(j//d) # Если числа не имеют общих делителей и их по 4, то засчитываем if f == 0 and len(d1) == 4 and len(d2) == 4: if i+j > mx: mx = i+j mxe = (j, i) # Прерываем цикл, потому что дальше числа поменьше break print(mxe)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [4301614; 4301717], простые числа. Найденные числа запишите в порядке возрастания через пробел.
for x in range(4301614, 4301718): f = 0 # Переменная-флаг, единица при наличии иных делителей, помимо простых # В цикл не входят единица и само число for d in range(2, int(x**0.5)+1): if x % d == 0: f = 1 break if f == 0: print(x)
Ошибка.
Попробуйте повторить позже
Среди целых чисел, принадлежащих числовому отрезку [182635;453733], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе через пробел количество таких чисел и сумму минимального и максимального из них.
def simple(x):# Функция,которая проверяет является ли число простым или нет return x > 1 and all(x % y for y in range(2,int(x**0.5)+1)) def divs(x):# Функция,которая возвращает список делителей определённого числа d = set() for i in range(2,int(x**0.5)+1): if x % i == 0: d |= {i,x//i} return sorted(d) ans = [] for x in range(182635,453733+1): d = [i for i in divs(x) if simple(i)]#В списке d будут делители числа x,которые при этом являются простыми числами if len(d) == 2 and d[0]*d[1] == x: ans += [x] print(len(ans),max(ans)+min(ans))
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [35131514; 214164125] минимальное расстояние между числом, являющимся факториалом какого-то числа, и числом Фибоначчи. В ответе запишите эти два числа соответственно (сначала число, которое является факториалом, а затем, число, которое является чилос Фибоначчи) через пробел.
from math import factorial fact = []#Список ,в котором будут факториалы числа for i in range(20): if factorial(i) >= 35131514 and factorial(i) <= 214164125: fact += [factorial(i)] fibo = [0,1] while fibo[-1] < 214164125: fibo += [fibo[-2]+fibo[-1]] fibo = [x for x in fibo if x >= 35131514 and x <= 214164125] #Список, в котором будут только числа # которые находятся в исследуемой области ans = [] mn = 10**50 for first in fact: for second in fibo: if abs(first-second) < mn: ans += [(first,second)]#Записываем числа в список,если их разница меньше mn mn = abs(first-second) #Перезаписываем значение mn print(ans)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [907645; 907709], простые числа.
Выведите все найденные простые числа в порядке возрастания через пробел.
for i in range(907645, 907710): f = 0 # Переменная-флаг, означающая наличие делителей for d in range(2, int(i**0.5)+1): if i % d == 0: f = 1 break if f == 0: print(i)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [235121; 1004523], числа Фибоначчи. В ответе запишите все такие найденные числа в порядке возрастания через пробел.
a = [0] * 100 a[1] = 1 for i in range(2, 100): a[i] = a[i - 1] + a[i - 2] for i in range(len(a)): if a[i] >= 235121 and a[i] <= 1004523: print(a[i], end=’ ’)
Ошибка.
Попробуйте повторить позже
На отрезке [123123; 345345] найдите минимальное и максимальное простое число. В ответе запишите два этих числа в порядке возрастания через пробел.
def is_prime(number): if number == 1: return False for div in range(2, int(number ** 0.5) + 1): if number % div == 0: return False return True maxim = 0 minim = 10 ** 10 for i in range(123123, 345345 + 1): if is_prime(i): maxim = i minim = min(minim, i) print(minim, maxim)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [4301614; 4301717], простые числа. В качестве ответа выводите сначала порядковый номер найденного числа, затем через пробел само число. Далее через пробел повторите это для следующего найденного числа. То есть формат ответа: номер1 число1 номер2 число2 ...
def is_prime(number): if number == 1: return False for div in range(2, int(number ** 0.5) + 1): if number % div == 0: return False return True for i in range(4301614, 4301717 + 1): if is_prime(i): print(i - 4301614 + 1, i, end=’ ’)