Как вывести все простые числа в интервале от a до b python
Перейти к содержимому

Как вывести все простые числа в интервале от a до b python

  • автор:

Найти простые числа

По введенным числам A и B вывести все простые числа в интервале от A до B включительно.

Входные данные:
В единственной строке вводятся два числа 1 ≤ A ≤ B ≤ 500000

Выходные данные:
Вывести в одну строку все простые числа в интервале от A до B включительно

Примеры:
входные данные
2 2
выходные данные
2
—————————-
входные данные
1 100
выходные данные
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
———————————————
———————————————
Примечание: минимальное простое число — 2.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как найти простые числа в диапазоне?
Здравствуйте! Вы не могли бы сказать, как с помощью решета Эратосфена можно найти простые числа в.

Найти все трехзначные простые числа
Найти все трехзначные простые числа(простым называется натуральное число, большее 1, не имеющее.

Как найти простые делители для числа?
Всем привет. Подскажите как для числа найти простые делители?

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

Найти все простые числа, сумма цифр которых больше 35
Для интервала найти все простые числа, сумма цифр которых больше 35. Запишите шестое найденное (по.

1090 / 679 / 303
Регистрация: 05.09.2021
Сообщений: 1,161
NebraskKrasnod,

1 2 3 4 5 6 7 8 9 10 11
def is_prime(n): if n  2: return False for i in range(2, n // 2 + 1): if n % i == 0: return False return True a, b = map(int, input().split()) print(*(i for i in range(a, b + 1) if is_prime(i)))

Эксперт Python

2580 / 1454 / 267
Регистрация: 18.01.2021
Сообщений: 2,820

Лучший ответ

Сообщение было отмечено NebraskKrasnod как решение

Решение

Для 500К чисел наивный процесс может затянуться.
Кажется, что Эратосфеном придется воспользоваться

1 2 3 4 5 6 7
a, b = map( int, input().split() ) numbers = list(range(2, b + 1)) for x in numbers: if x != 0: for i in range(2 * x, b + 1, x): numbers[i - 2] = 0 print(*list(filter(lambda x: a  x  b, numbers)))

Python 3. Циклы. Операторы while и for

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

a, b = map(int, input().split()) res, s = 0, 1 if b

Задача: Напишите программу, которая вводит натуральное число N и выводит первые N чётных натуральных чисел. Программа должна вывести в одну строчку N первых чётных натуральных чисел, разделив их пробелами.

n = int(input()) for i in range (1,2*n,2): print (i+1)

Задача: Напишите программу, которая вводит натуральные числа a и b и выводит сумму квадратов натуральных чисел в диапазоне от a до b.

a, b = map(int, input().split()) if a > b: t = a a = b b = t s = 0 for i in range (a, b+1): s = s+i*i print (s)

Задача: Напишите программу, которая вводит четыре натуральных числа (a, b, c и d) и находит все пятизначные числа, которые при делении на a дают в остатке b , а при делении на c дают в остатке d .

Входные данные Первая входная строка содержит два натуральных числа, разделённые пробелами: a и b. Вторая строка содержит натуральные числа c и d, также разделённые пробелом. Гарантируется, что 0 ≤ b ≤ a и 0 ≤ d ≤ c. Выходные данные Программа должна вывести в одну строчку через пробел все пятизначные натуральные числа, которые при делении на a дают в остатке b, а при делении на c дают в остатке d . Если таких чисел нет, программа должна вывести число -1.

x = input().split() y = input().split() a = int(x[0]) b = int(x[1]) c = int(y[0]) d = int(y[1]) if a==0 or c==0: print(-1) else: res = '' for i in range(10000, 99999): if (i%a == b) and (i%c == d): res = res+" "+str(i) res = res.strip() if res == '': print(-1) else: print(res)

Задача: Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в K-ю степень (где K – количество цифр в числе) равна самому числу. Например:
153 = 1^3 + 5^3 + 3^3
Напишите программу, которая находит все числа Армстронга на отрезке [a, b].

Входные данные: Входная строка содержит два натуральных числа – значения a и b, разделённых пробелами. Гарантируется, что a ≤ b.

Выходные данные: Программа должна вывести в одну строчку все числа Армстронга на отрезке [a, b] , разделив их пробелами. Если таких чисел нет, программа должна вывести число -1.

x = input().split() a = int(x[0]) b = int(x[1]) ''' a = 100 b = 400 ''' if a > b: t = a a = b b = t if a

Задача: Напишите программу, которая считает количество чётных цифр введённого числа.

n = int(input()) n = int(n) k = 0 m = 0 while n>0: if n%2==0: k+=1 else: m+=1 n=n//10 print(k)

Задача: Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221).

n = int(input()) res = "NO" d1 = 0 d2 = 0 while n > 0: d1 = n%10 d2 = n//10%10 if d1 == d2: res = "YES" n = n//10 print (res)

Задача: Напишите программу, которая определяет, верно ли, что введённое число содержит по крайней мере две одинаковых цифры, возможно, не стоящие рядом (как, например, 212). Программа должна вывести слово 'YES', если в числе есть две одинаковые цифры, и слово 'NO', если такой пары цифр нет.

n = int(input()) res = "NO" d1 = 0 d2 = 0 while n>0: d1 = n%10 m = n//10 while m > 0: d2 = m%10 if d1 == d2: res = "YES" m = m//10 n = n//10 print (res)

Задача: Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.

Входные данные: Входная строка содержит два числа, разделённые пробелом – a и b .

Выходные данные: Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.

x = input().split() #Python 3.x a = int(x[0]) b = int(x[1]) n = 0 while a!=0 and b!=0: if a > b: a = a % b else: b = b % a n+=1 print (a+b, n)

Задача: Напишите программу, которая вычисляет сумму и произведение целых чисел, поданных на её вход. Ввод заканчивается числом 0.

Входные данные: Во входных строках записаны целые числа, по одному в каждой строке. В последней строке записано число 0.

Выходные данные: Программа должна вывести в одной строке сумму и произведение введённых чисел (не считая завершающий 0), разделив их пробелом.

summ, mul = 0, 1 while 1: c = int(input()) if c == 0: break; summ += c mul *= c print (summ,mul)

Задача: Напишите программу, которая вводит натуральное число N и определяет его факториал, то есть произведение натуральных чисел от 1 до N: N! = 1·2·<. >· N.

n = int(input()) f = 1 while n>1: f *= n n -= 1 print (f)

Задача: Напишите программу, которая выводит на экран все цифры числа, начиная с первой.

Входные данные: Входная строка содержит натуральное число N.

Выходные данные: Программа должна вывести все цифры введённого числа в одной строке, начиная с первой. Цифры отделяются пробелами.

n = int(input()) res = "" while n>0: res = str(n%10)+ " " + res n = n//10 print (res.strip())

Задача: Напишите программу, которая вводит натуральные числа a и b и выводит все простые числа в диапазоне от a до b. Входная строка содержит два натуральных числа: a и b. Гарантируется, что a ≤ b. Программа должна вывести в одной строке через пробел все простые числа на отрезке [a, b]. Если таких чисел нет, программа должна вывести 0.

x = input().split() a = int(x[0]) b = int(x[1]) if a == 0: a = 1 res = "" for i in range(a, b + 1): for j in range(2,i): if i%j == 0: break else: res = res + " " + str(i) if res != '': print (res) else: print (0)

Вывести в одну строку все простые числа в интервале от A до B

По введенным числам A и B вывести все простые числа в интервале от A до B включительно.

Входные данные:
В единственной строке вводятся два числа 1 ≤ A ≤ B ≤ 500000

Выходные данные:
Вывести в одну строку все простые числа в интервале от A до B включительно

1) входные данные
2 2
выходные данные
2

2) входные данные
1 100
выходные данные
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Я сделал такой код, но он выполняется слишком долго:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
a = True k, n = input().split() k = int(k) n = int(n) if k  0: k = 2 if n  -1: n = 0 if k == 1: k = k + 1 if k == 0: k = k + 2 for x in range(k,n+1): for y in range(k,n+1): if x != y and y != 1: if not x % y: a = False break if a == True: print(x, end =' ') a = True

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Вывести все простые числа в интервале от A до B
Напишите программу, которая получает натуральные числа A и B (A<B) и выводит все простые числа в.

Вывести все простые числа в указанном интервале
Составить алгоритм. Вывести все простые числа P в указанном интервале (A;B). помогите с текстом.

Вывести все простые числа в указанном интервале
Составить алгоритм. Вывести все простые числа P в указанном интервале (A;B). помогите с блок-схемой.

Вывести все простые числа в заданном интервале
Ввести с клавиатуры натуральные числа a, b (a ≤ b, a > 1). Выести все простые числа pr.

Вывести все простые числа в заданном интервале
Доброго времени суток! Необходима Ваша помощь в написании программы на visual c++. Программы.

50 / 34 / 17
Регистрация: 10.01.2022
Сообщений: 110

1 2 3 4 5 6 7 8 9 10 11
s = [] for i in range(int(input()), int(input()) + 1): for j in range(2, i): if i % j == 0: break else: s.append(i) print(s)

Анализ алгоритма

Выведем все числа i на промежутке от a до b , для которых primes[ i] = 1 .

Заполненный массив primes имеет вид:

Простыми числами на промежутке [1; 10] будут 2, 3, 5, 7.

Реализация алгоритма

Объявим рабочий массив primes .

#define MAX 100001

Функция gen_primes запускает решето Эратосфена и заполняет массив primes . Числа 0 и 1 не простые.

void gen_primes( void )

primes[0] = primes[1] = 0;

Основная часть программы. Заполняем массив primes .

Читаем входные данные.

Выводим все простые числа от a до b .

if (primes[i]) printf( "%d " , i);

Реализация алгоритма – bitset

#define MAX 100001

using namespace std;

void gen_primes( void )

primes.flip(); // set all to 1

if (primes.test(i)) printf( "%d " , i);

Java реализация

import java.util.*;

public class Main

final static int MAX_SIZE = 100001;

static BitSet bits = new BitSet( MAX_SIZE );

public static void Eratosthenes()

bits .set(2, MAX_SIZE , true );

if ( bits .get( i ))

bits .set( j , false );

public static void main(String args [])

Scanner con = new Scanner(System. in );

Eratosthenes();

int a = con .nextInt();

int b = con .nextInt();

for ( int i = a ; i

if ( bits .get( i )) System. out .print( i + " " );

System. out .println();

Python реализация

def seive_of_eratosthenes(n):

is_prime = [ True for _ in range (n + 1 )]

is_prime[ 0 ], is_prime[ 1 ] = False , False

for i in range ( 2 , int (n ** 0.5 ) + 1 ):

for j in range (i * i, n + 1 , i):

is_prime[j] = False

return is_prime

prime = seive_of_eratosthenes( 100001 )

a, b = map ( int , input ().split())

for i in range (a, b + 1 ):

if prime[i]: print (i, end = ' ' )

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *