Напишите программу, которая вводит натуральные числа a и b и выводит все простые числа в диапазоне от a до b .
Входные данные
Входная строка содержит два натуральных числа, a и b . Гарантируется, что a ≤ b .
Выходные данные
Программа должна вывести в одной строке через пробел все простые числа на отрезке [ a , b ] . Если таких чисел нет, программа должна вывести 0.
Примеры
входные данные
20 30
выходные данные
23 29
входные данные
24 28
выходные данные
0
Python
Простые числа.Напишите программу
def is_prime(n): # эффективная проверка числа на простоту
if n < 2: return False
if n % 2 == 0: return n == 2
i = 3
while i * i
С ситом Эратосфена, что быстрее:
import math
while True:
a, b = map(int, input("a b » ").split())
if b < a: a, b = b, a
primes = [True for k in range(b + 1)]
primes[0] = primes[1] = False
for k in range(2, math.ceil(math.sqrt(b))):
if primes[k]:
l = b // k + 1
for m in range(2, l):
primes[m * k] = False
k, l = 0, 0
if a < 3: print('%10d' % (2), end = ''); k, l, a = 1, 1, 3
if a % 2 == 0 and a != 2: a += 1
for x in range(a, b + 1, 2):
if primes[x]:
print('%10d' % (x), end = ''); k += 1; l += 1
if k == 5: print(); k = 0
if k: print()
print(str(l) + ' numbers' if l != 1 else '1 number')
Только это вывод не через дурацкие пробелы, а в виде аккуратной таблицы:
a,b = int(input()),int(input())
total = 0
for i in range(a,b+1):
count = 0
for j in range(1,b+1):
if i % j == 0:
count += 1
if count == 2:
print(i,end=' ')
total += 1
if total == 0:
print(total)
Слава Морозов
ОШИБКА Traceback (most recent call last):line 1, in <module>
a,b = int(input()),int(input())
ValueError: invalid literal for int() with base 10: '24 28'
a,b = int(input()),int(input())
ValueError: invalid literal for int() with base 10: '24 28'
Похожие вопросы
- Питон. Ошибка в программе. Вычисление простых чисел
- Программа на Python, Простые Числа
- 1) Напишите программу, которая будет принимать числа от пользователя и суммировать их, пока он не напишет слово «sum».
- Выразите число в виде суммы четырех квадратов Нужно написать программу на python
- Помогите понять г*вно ли код? Необходимо написать программу, которая определяет число просто или составное.
- Создайте программу, которая выводит первые 1000 простых чисел на языке программирования Python.
- Помогите разобраться и объяснить принцип действия цикла поиска простых чисел в Pyrhon
- Программирование на питон, нужно написать программу
- Помогите написать программу которая посчитает количество строк в отзыве
- Помогите написать программу на Паскале
Чем такое решение лучше/хуже? Я питон не особо хорошо знаю, пытаюсь вникнуть, но тут из-за отступа сразу ошибка. Пиз**ц полный.. возможно онл. компилятор ггг...
Надо просто ввести числа для запуска, без них это пустая функция.
у вас в функции аргументы передаются через n которая появляется при вызове в принте.. это уже i.. i нигде не вводится.. что это?
Второе решение вроде как хуже, там массив.. для js это плохо.
Но оно чище и понятнее, но не для меня. МАР это конструктор. который трансформирует.. Int тип данных, инпут и есть ввод, сплит как раз
Почему так. Вход в другом месте..
По идее, вызывается функция, она отрабатывает и затем уже принт срабатывает и выводит в консоль результат..
Возможно вход в 11 строчке и тогда понятно почему зависает..
Конструкция: это генератор списка. Эквивалент: or в Python работает точно так же, как || в JS: если первый аргумент не false (т.е. генератор вернул не пустой массив), возвращается значение первого аргумента; если false (пустой массив) - возвращается второй аргумент (массив [0]).
10 20
Выражение input().split() возвращает:
['10', '20']
map применяет функцию int к каждому элементу массива:
[10, 20] (map возвращает не массив, а итератор, но суть не меняется)
элементы массива присваиваются переменным:
a = 10 и b = 20
Пример тык f9 и ввести 10 30 .. в консоли (черное поле)