Программа которая выводит простые числа в диапазоне

Автор оригинала: Shubham Sayon.

Обзор

Вычисление простых чисел из данной серии чисел не может быть большим вопросом. Тем не менее, вычисляющие простые простые простые простые способы сохранения временной сложности и другие факторы, могут быть сложным вопросом. В конце концов, одним из основных критериев эффективного кода является его эффективность. Поэтому в этой статье мы будем сравнивать и контрастировать сложности различных кодов, чтобы вычислить все простые простынения, меньше, чем N , где n обозначает произвольное количество значений в данной серии, как введено пользователем.

Пример: Ниже приведен простой пример того, что нужно следовать следующему в этой статье:

import time start_time = time.time() n = int(input(«Enter the last range of the series: «)) for i in range(1,n+1): if i>1: for j in range(2,i): if(i % j==0): break else: print(i) end_time = time.time() print(«Elapsed Time: » + str(end_time-start_time))
Enter the last range of the series: 10 2 3 5 7 Elapsed Time: 3.9661035537719727

❖ Отказ от ответственности: Методы, используемые в следующем скрипте, чисто основаны на наименьшее время, предпринятые для вычисления простых чисел

Функция на JS, которая выводит простые числа!

Без дальнейшей задержки давайте погрузимся в сравнения и визуализируйте вывод.

Сравнение кода

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

from sympy import sieve import numpy import itertools izip = itertools.zip_longest chain = itertools.chain.from_iterable compress = itertools.compress import time def method1(n): «»» Returns a list of primes < n «»» sieve = [True] * n for i in range(3, int(n ** 0.5) + 1, 2): if sieve[i]: sieve[i * i::2 * i] = [False] * ((n — i * i — 1) // (2 * i) + 1) return [2] + [i for i in range(3, n, 2) if sieve[i]] def method2(n): «»» Returns a list of primes < n «»» sieve = [True] * (n // 2) for i in range(3, int(n ** 0.5) + 1, 2): if sieve[i // 2]: sieve[i * i // 2::i] = [False] * ((n — i * i — 1) // (2 * i) + 1) return [2] + [2 * i + 1 for i in range(1, n // 2) if sieve[i]] def method3(n): «»» Input n>=6, Returns a array of primes, 2 =6, Returns a list of primes, 2 1) sieve = [True] * (n // 3) for i in range(1, int(n ** 0.5) // 3 + 1): if sieve[i]: k = 3 * i + 1 | 1 sieve[k * k // 3::2 * k] = [False] * ((n // 6 — k * k // 6 — 1) // k + 1) sieve[k * (k — 2 * (i 1) + 4) // 6 — 1) // k + 1) return [2, 3] + [3 * i + 1 | 1 for i in range(1, n // 3 — correction) if sieve[i]] def method5(n): primes = list(sieve.primerange(1, n)) return primes def method6(n): «»» Input n>=6, Returns a list of primes, 2
Method 1 Elapsed time: 0.06881570816040039 Method 2 Elapsed time: 0.9155552387237549 Method 3 Elapsed time: 0.045876264572143555 Method 4 Elapsed time: 0.6512553691864014 Method 5 Elapsed time: 7.0082621574401855 Method 6 Elapsed time: 0.33211350440979004

Читайте также:
Free pascal вылетает при запуске программы

Из приведенного выше анализа понятно, что Метод 3 берет минимально Время для вычисления проставок Метод 5 берет максимум Время сделать это. Для сравнения и сравнения различных методов и время, предпринимаемое каждому методу, мы рассчитали время для вычисления всех простых чисел в пределах диапазона от 1 до 10 7 а затем вывел наш вывод. Следовательно,

7.9 Простые числа. «Поколение Python»: курс для начинающих. Курс Stepik

Наш победитель: Метод 3

❖ Отказ от ответственности : Значения прошедшего времени, предпринятые каждым методом, рассчитанным по время Модуль может варьироваться в зависимости от использования в использовании системы/оборудования и версию Python, которую вы используете.

Если вы все еще используете Python 2.x, вы можете предпринять следующие методы, приведенные ниже:

from math import sqrt import time def method1(max_n): numbers = range(3, max_n + 1, 2) half = (max_n) // 2 initial = 4 for step in range(3, max_n + 1, 2): for i in range(initial, half, step): numbers[i — 1] = 0 initial += 2 * (step + 1) if initial > half: return [2] + filter(None, numbers) def method2(n): «»»sieveOfEratosthenes(n): return the list of the primes < n.»»» if n = top: break sieve[bottom::si] = [0] * -((bottom — top) // si) return [2] + [el for el in sieve if el] def method3(n): s = range(3, n, 2) for m in xrange(3, int(n ** 0.5) + 1, 2): if s[(m — 3) / 2]: for t in xrange((m * m — 3) / 2, (n >> 1) — 1, m): s[t] = 0 return [2] + [t for t in s if t > 0] def method4(size): prime = [True] * size rng = xrange limit = int(sqrt(size)) for i in rng(3, limit + 1, +2): if prime[i]: prime[i * i::+i] = [False] * len(prime[i * i::+i]) return [2] + [i for i in rng(3, size, +2) if prime[i]] m1_start = time.time() method1(10 ** 6) m1_end = time.time() print(«Method 1 Elapsed time: » + str(m1_end — m1_start)) m2_start = time.time() method2(10 ** 6) m2_end = time.time() print(«Method 2 Elapsed time: » + str(m2_end — m2_start)) m3_start = time.time() method3(10 ** 6) m3_end = time.time() print(«Method 3 Elapsed time: » + str(m3_end — m3_start)) m4_start = time.time() method4(10 ** 6) m4_end = time.time() print(«Method 4 Elapsed time: » + str(m4_end — m4_start))
Method 1 Elapsed time: 0.891271114349 Method 2 Elapsed time: 0.178880214691 Method 3 Elapsed time: 0.526117086411 Method 4 Elapsed time: 0.29536986351

Читайте также:
Лучшие программы для рисования на Андроид планшете со стилусом

Графическое сравнение

Учитывая, что вышеуказанный фрагмент написан в файле с именем Plot.py , вот графический анализ времен, предпринятых каждым методом для вычисления всех простых чисел меньше, чем Н. Код, приведенный ниже, используется для участия Бар-граф Для сравнения различных методов, используемых для вычисления простых чисел

import plot import matplotlib.pyplot as plt import numpy as np method = [‘Method 1’, ‘Method 2’, ‘Method 3’, ‘Method 4’, ‘Method 5’, ‘Method 6’] et = [plot.m1_et, plot.m2_et, plot.m3_et, plot.m4_et, plot.m5_et, plot.m6_et] c = [«red», «green», «orange», «blue», «black», «purple»] ypos = np.arange(len(method)) plt.xticks(ypos, method) plt.bar(ypos, et, 0.4, color=c) plt.title(«Time To Compute Primes») plt.xlabel(«Methods») plt.ylabel(«Elapsed Time (seconds)») plt.show()

Сюжет/график Выход:

❖ Приведенные ниже еще одно графическое сравнение с помощью пунктирного Линейный граф что сравнивает время, предпринятое каждому методу:

Код для генерации вышеуказанного графа приведен ниже (код, содержащий основные методы, упомянуто выше. Мы считаем его присутствующим в файле plot.py, а затем мы импортируем его в наш основной файл классов, чтобы построить график.)

import plot import matplotlib.pyplot as plt import numpy as np method = [‘Method 1’, ‘Method 2’, ‘Method 3’, ‘Method 4’, ‘Method 5’, ‘Method 6′] et = [plot.m1_et, plot.m2_et, plot.m3_et, plot.m4_et, plot.m5_et, plot.m6_et] ypos = np.arange(len(method)) plt.xticks(ypos, method) plt.plot(ypos, et, color=’green’, linestyle=’dashed’, linewidth = 3, marker=’o’, markerfacecolor=’blue’, markersize=12) plt.title(«Time To Compute Primes») plt.xlabel(«Methods») plt.ylabel(«Elapsed Time (seconds)») plt.show()

Заключение

В этой статье мы сравнили несколько методов и нашли лучший метод с точки зрения наименьшего времени, чтобы вычислить все простыни

Я надеюсь, что вам понравилось статью, пожалуйста, подпишитесь и оставайтесь настроенными для более интересных статей и подобных услуг.

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Читайте ещё по теме:

  • Быстрый обзор метода Python DIR ()
  • Использование метода Python time.sleep()
  • Список Python POP ()
  • Начало работы с Python – время чтения: 6 минут
  • Полное руководство по спискам Python
  • Данные JSON в pandas df без метода read_json()
  • Module Re Python поставляется с рядом методов регулярных методов экспрессии, которые помогают вам добиться большего. https://youtu.be/swju442_eyq Связанная статья: Python Regeex SuperPower – окончательное руководство думает о тех методах как рамках, соединяющих регулярные выражения с языком программирования Python. Каждый язык программирования поставляется с собственным способом обращения с регулярными выражениями. … Методы Python Regex – короткий обзор Подробнее »
Читайте также:
Изи мерч программа отзывы

Источник: pythobyte.com

Отображение простых чисел между 2 интервалами с помощью функций

Пример печати всех простых чисел между двумя числами (введенными пользователем) с помощью пользовательской функции.

#include using namespace std; int checkPrimeNumber(int); int main() < int n1, n2; bool flag; cout > n1 >> n2; // swapping n1 and n2 if n1 is greater than n2 if (n1 > n2) < n2 = n1 + n2; n1 = n2 — n1; n2 = n2 — n1; >cout return 0; > // user-defined function to check prime number int checkPrimeNumber(int n) < bool isPrime = true; // 0 and 1 are not prime numbers if (n == 0 || n == 1) < isPrime = false; >else < for(int j = 2; j > > return isPrime; >
Enter two positive integers: 12 55 Prime numbers between 12 and 55 are: 13 17 19 23 29 31 37 41 43 47 53

Чтобы вывести все простые числа между двумя целыми числами в C++, создается функция checkPrimeNumber(). Эта функция проверяет, является ли число простым или нет.

В эту функцию передаются все целые числа от n1 до n2 .

Если число, переданное в checkPrimeNumber(), является простым числом, эта функция возвращает true, в противном случае функция возвращает false.

Источник: calmsen.ru

Вопрос по Шилдту. Java 8 руководство для начинающих.

Задача 10 во второй главе. Напишите программу, которая находила бы простые числа в пределах от 2 до 100. Код таков:

// Нахождение простых чисел в пределах от 2 до 100 class Prime public static void main(String args[]) int i, j; boolean isprime; for(i=2; i 100; i++) isprime = true; // проверить, делится ли число без остатка for (j=2; j i/j; j++) // если число делится без остатка, значит, оно не простое if((i%j) == 0) isprime = false; if (isprime) System.out.println(i + » — простое число.»); > > >

Вопрос: зачем и почему в условии второго цикла, ограничение ставиться в виде?

j i/j

Источник: javarush.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru