ПОМОГИТЕ ПОЖАЛУЙСТА
Напишите программу, которая вводит натуральные числа a и b и выводит все простые числа в диапазоне от a до b .
Входные данные
Входная строка содержит два натуральных числа, a и b . Гарантируется, что a ≤ b .
Выходные данные
Программа должна вывести в одной строке через пробел все простые числа на отрезке [ a , b ] . Если таких чисел нет, программа должна вывести 0.
Примеры
Входные данные
20 30
Выходные данные
23 29
Входные данные
24 28
Выходные данные
0
P.S. ПИТОН
Ответы
Ответ:
def is_prime(n):
if n == 2:
return True
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
a, b = map(int, input().split())
prime_numbers = []
for i in range(a, b + 1):
if is_prime(i):
prime_numbers.append(str(i))
if not prime_numbers:
print(0)
else:
print(" ".join(prime_numbers))
Объяснение:
Ответ:
def check_simple(number:int):
assert number % number == 0 #check number is 'int' class
for i in range(2, number):
if number % i == 0:
return 0
return 1
def main():
a,b = input().split()
assert int(a) >= int(b) #Гарантировано, что a >= b
res = []
for i in range(int(a), int(b)):
if check_simple(i):
res.append(i)
if len(res) == 0:
print(0)
else:
print(' '.join(str(i) for i in res))
if __name__ == '__main__':
main()
Объяснение:
Скриншот приложен на случай, если сайт поломает табуляции в коде. Программа протестирована