Python Program for Legendre's Conjecture
Last Updated : 27 Jul, 2023
It says that there is always one prime number between any two consecutive natural number\'s(n = 1, 2, 3, 4, 5, ...) square. This is called Legendre's Conjecture. Conjecture: A conjecture is a proposition or conclusion based upon incomplete information to which no proof has been found i.e it has not been proved or disproved.
Mathematically, there is always one prime p in the range n^2 to (n + 1)^2 where n is any natural number. for examples- 2 and 3 are the primes in the range 1^2 to 2^2 . 5 and 7 are the primes in the range 2^2 to 3^2 . 11 and 13 are the primes in the range 3^2 to 4^2 . 17 and 19 are the primes in the range 4^2 to 5^2 .
Examples:
Input : 4
output: Primes in the range 16 and 25 are:
17
19
23
Explanation: Here 42 = 16 and 52 = 25 Hence, prime numbers between 16 and 25 are 17, 19 and 23.
Input : 10
Output: Primes in the range 100 and 121 are:
101
103
107
109
113
Python3 # Python program to verify Legendre's Conjecture # for a given n import math def isprime( n ): i = 2 for i in range (2, int((math.sqrt(n)+1))): if n%i == 0: return False return True def LegendreConjecture( n ): print ( "Primes in the range ", n*n , " and ", (n+1)*(n+1) , " are:" ) for i in range (n*n, (((n+1)*(n+1))+1)): if(isprime(i)): print (i) n = 50 LegendreConjecture(n) # Contributed by _omg
Output :
Primes in the range 2500 and 2601 are:
2503
2521
2531
2539
2543
2549
2551
2557
2579
2591
2593
Time Complexity: O(n*sqrtn). isPrime() function takes O(n) time and it is embedded in LegendreConjecture() function which also takes O(n) time as it has loop which starts from n2 and ends at
(n+1)2 so, (n+1)2 - n2 = 2n+1.
Auxiliary Space: O(1)
METHOD 2:
Instead of iterating through a range of numbers to check for prime numbers, the new approach uses the sympy library to generate all prime numbers in a given range.
- The sympy library provides the primesieve function, which takes two arguments: the start and end values for the range to search for primes.
- The primesieve function returns a generator object that can be iterated over to get all the prime numbers in the specified range.
- The isprime function is no longer necessary, as the primesieve function has already generated all prime numbers in the range.
- The LegendreConjecture function remains the same, except for the for loop, which now iterates over the prime numbers.
NOTE: First you will have to install the sympy library using the following command: pip install sympy
Python3 import sympy def LegendreConjecture(n): # Find all prime numbers in the given range primes = list(sympy.primerange(n*n, (n+1)*(n+1))) # Print the prime numbers print(f"Primes in the range {n*n} and {(n+1)*(n+1)} are:\n") for i in range(len(primes)): print(primes[i]) n = 50 LegendreConjecture(n) # Contributed by adityasha4x71
Output :
Primes in the range 2500 and 2601 are:2503
2521
2531
2539
2543
2549
2551
2557
2579
2591
2593
Time complexity: O(n log log n), as the sieve of Eratosthenes algorithm has a time complexity of O(n log log n) for finding all primes up to n, and the algorithm used here is a modified version of the sieve of Eratosthenes.
Auxiliary Space: O(n), because the algorithm uses a boolean list of size n+1 to keep track of whether each number is prime or not.
Please refer complete article on Legendre's Conjecture for more details!
Similar Reads
Perfect Number Program in Python A Perfect Number is a positive integer that is equal to the sum of its proper divisors, excluding the number itself.Example:6 is a perfect number because its divisors (excluding itself) are 1, 2, and 3, and their sum is 6 (1 + 2 + 3 = 6).28 is a perfect number because its divisors are 1, 2, 4, 7, 14
3 min read
Python Program to Find LCM of Two Numbers We are given two numbers and our task is to find the LCM of two numbers in Python. In this article, we'll discuss different approaches to finding the LCM of two numbers in Python.Example:Input: a = 12, b = 15Output: 60Explanation: LCM of 12 and 15 is 60Python Program to Find LCM of Two NumbersBelow
3 min read
Check Prime Number in Python Given a positive integer N, the task is to write a Python program to check if the number is Prime or not in Python. For example, given a number 29, it has no divisors other than 1 and 29 itself. Hence, it is a prime number.Note: Negative numbers (e.g. -13) are not considered prime number.Using sympy
7 min read
Python Program to Print all Prime numbers in an Interval The task of printing all prime numbers in an interval in Python involves taking two input values representing a range [x, y] and finding all prime numbers within that range. A prime number is a natural number greater than 1 that is divisible only by 1 and itself. For example, in the interval [2, 7],
4 min read
Python Conditional Statement and Loops Coding Problems Welcome to this article on Python conditional statements problems, where weâll practice solving a variety of coding challenges that focus on conditional statements and loops. Youâll work on problems like If Conditional Statement, Mark Even and Odd, The FizzBuzz Program, Leap Year, Factorial, GCD, LC
1 min read