Люди тут такое дело, срочно нужна помощь. Задача такая --- напишите программу, где вводишь любое число, а в результате выводится следующие 2 простых числа после введенного числа
пример:
Введите число: 3
Следующие 2 простых числа: 5 и 7
или другой пример:
Введите число: 6
Следующие 2 простых числа: 7 и 11
надеюсь на вашу помощь! буду крайне благодарен!
Python
Программа на Python, Простые Числа
Вот простая, но эффективная программа с идеей Витнесса:
На последнем введённом числе уже неплохо так ощущается висяк. С маленькими же n всё работает мгновенно - никакого торможения!
Можно всё существенно ускорить, если воспользоваться массивом, хранящем информацию о простоте всех натуральных чисел до ≈√n (n - введённое число). Себе на компьютере я делала такой массив для хранения информации о простоте нескольких сотен миллиардов первых натуральных чисел. С ним бы, в принципе, можно было исследовать 22-ух и даже 23-ёхзначные n на предмет двух идущих за этим n простых чисел, только, конечно же, происходило бы всё это действо отнюдь не быстро. А для любых (целых) n эта задача мне вообще представляется довольно таки утопичной...
from math import sqrt
def prime(n):
if n < 2: return False
if n == 2 or n == 3: return True
if n % 2 == 0: return False
for i in range(3, int(sqrt(n)) + 1, 2):
if n % i == 0: return False
return True
while True:
n = int(input('n: '))
if n < 2: print('2 3')
else:
m = 0
while m < 2:
n += 1
if prime(n):
print(str(n) + ' ', end = ''); m += 1
print()
Только на достаточно больших числах она будет, естественно, тормозить. Вот что у меня на фаблете эта программа печатает:
Можно всё существенно ускорить, если воспользоваться массивом, хранящем информацию о простоте всех натуральных чисел до ≈√n (n - введённое число). Себе на компьютере я делала такой массив для хранения информации о простоте нескольких сотен миллиардов первых натуральных чисел. С ним бы, в принципе, можно было исследовать 22-ух и даже 23-ёхзначные n на предмет двух идущих за этим n простых чисел, только, конечно же, происходило бы всё это действо отнюдь не быстро. А для любых (целых) n эта задача мне вообще представляется довольно таки утопичной...
Делаешь функцию проверки числа на простоту, циклом идешь начиная с введенного, пока не встретишь два простых
Здравствуйте!
Вот программа для Вас:
Вот программа для Вас:
# Ввожу число с клавиатуры
a = int(input("a = "))
# Для начала устанавливаю, что количество найденных чисел равно нулю
count = 0
# Обнуляю строку с результатом
result = ""
while count < 2:
# Перехожу к следующему за a числу
a += 1
# Для начала устанавливаю, что число "a" - простое
is_simple = True
# Запускаю цикл для поиска делителей числа в переменной "a"
for i in range(2,a):
# Если число "a" делится на i, то...
if a % i == 0:
# ...устанавливаю признак, что число "a" - не простое
is_simple = False
# Выхожу из цикла
break
# Если число "a" - простое, то...
if is_simple:
# Увеличиваю счётчик количества найденных простых чисел
count += 1
# Если нашёл одно простое число, то...
if count == 1:
# ... заполняю строку с результатом
result = str(a)
# Если текущее простое число - не первое, то...
else:
# ... добавляю текущее число в результирующую строку
result = result + " и " + str(a)
# Вывожу результат на экран
print("Следующие 2 простых числа:", result)
Ранис Хусаинов
Спасибо огромное! вы мне жизнь спасли этой программой!
Похожие вопросы
- Выразите число в виде суммы четырех квадратов Нужно написать программу на python
- Простые числа.Напишите программу
- Питон. Ошибка в программе. Вычисление простых чисел
- Создайте программу, которая выводит первые 1000 простых чисел на языке программирования Python.
- Python простейшая программа на окончание слова
- Помогите, как сделать авторизацию в программе на python?
- Оцените первую программу на Python, если не трудно :)
- Оцените программу на Python
- Помогите написать программу на Python, моя версия кода на скрине, вроде всё работает, но автопроверка не проходит.
- Помогите с программой на Python. Сколько существует десятичных трёхзначных чисел, в которых только одна цифра кратна 3?