罗瑟定理

在数学方面, 罗瑟定理 表示对于所有大于1的n,第n个素数大于n和n的自然对数的乘积。 从数学上来说, 对于n>=1,如果p N 是第n个素数 P N >n*(ln n)

null
Illustrative Examples:             For n = 1, nth prime number = 2    2 > 1 * ln(1)Explanations, the above relation inherently holds true and it verifies the statement of Rosser's Theorem clearly.Some more examples are,        For n = 2, nth prime number = 3    3 > 2 * ln(2)       For n = 3, nth prime number = 5    5 > 3 * ln(3)       For n = 4, nth prime number = 7    7 > 4 * ln(4)       For n = 5, nth prime number = 11    11 > 5 * ln(5)       For n = 6, nth prime number = 13    13 > 6 * ln(6)

编码方法: 利用遗传算法高效生成素数 粗筛 分别检查每个素数的Rosser定理的条件。

C++

// CPP code to verify Rosser's Theorem
#include <bits/stdc++.h>
using namespace std;
#define show(x) cout << #x << " = " << x << "";
vector< int > prime;
// Sieve of Eratosthenes
void sieve()
{
// prime sieve to generate prime numbers efficiently
int n = 1e5;
vector< bool > isprime(n + 2, true );
isprime[0] = isprime[1] = false ;
for ( long long i = 2; i <= n; i++) {
if (isprime[i]) {
for ( long long j = i * i; j <= n; j += i)
isprime[j] = false ;
}
}
// store primes in prime[] vector
for ( int i = 0; i <= n; i++)
if (isprime[i])
prime.push_back(i);
}
// Verifies ROSSER'S THEOREM for all numbers
// smaller than n.
void verifyRosser( int n)
{
cout << "ROSSER'S THEOREM: nth prime "
"number > n * (ln n)" ;
for ( int i = 0; i < n; i++)
if (prime[i] > (i + 1) * log (i + 1)) {
cout << "For n = " << i + 1
<< ", nth prime number = "
<< prime[i] << " "
<< prime[i] << " > " << i + 1
<< " * ln(" << i + 1 << ")" ;
}
}
int main()
{
sieve();
verifyRosser(20);
return 0;
}


JAVA

// Java code to verify Rosser's Theorem
import java.util.*;
class GFG
{
static Vector<Integer> prime= new Vector<Integer>();
// Sieve of Eratosthenes
static void sieve()
{
// prime sieve to generate prime numbers efficiently
int n = 10000 ;
boolean []isprime= new boolean [n+ 2 ];
for ( int i= 0 ;i<n;i++)
isprime[i]= true ;
isprime[ 0 ]= false ;
isprime[ 1 ] = false ;
for ( int i = 2 ; i <= n; i++) {
if (isprime[i]) {
for ( int j = i * i; j <= n; j += i)
isprime[j] = false ;
}
}
// store primes in prime[] vector
for ( int i = 0 ; i <= n; i++)
if (isprime[i])
prime.add(i);
}
// Verifies ROSSER'S THEOREM for all numbers
// smaller than n.
static void verifyRosser( int n)
{
System.out.println( "ROSSER'S THEOREM: nth prime number > n * (ln n)" );
for ( int i = 0 ; i < n; i++)
if (prime.get(i) > (i + 1 ) * Math.log(i + 1 )) {
System.out.println( "For n = " + (i+ 1 )
+ ", nth prime number = "
+ prime.get(i) + " "
+ prime.get(i) + " > " + (i + 1 )
+ " * ln(" + (i + 1 ) + ")" );
}
}
// Driver code
public static void main(String [] args)
{
sieve();
verifyRosser( 20 );
}
}
// This code is contributed by ihritik


Python3

# Python3 code to verify Rosser's Theorem
import math
prime = [];
# Sieve of Eratosthenes
def sieve():
# prime sieve to generate
# prime numbers efficiently
n = 100001 ;
isprime = [ True ] * (n + 2 );
isprime[ 0 ] = False ;
isprime[ 1 ] = False ;
for i in range ( 2 , n + 1 ):
if (isprime[i]):
j = i * i;
while (j < = n):
isprime[j] = False ;
j + = i;
# store primes in
# prime[] vector
for i in range (n + 1 ):
if (isprime[i]):
prime.append(i);
# Verifies ROSSER'S THEOREM
# for all numbers smaller than n.
def verifyRosser(n):
print ( "ROSSER'S THEOREM: nth" ,
"prime number > n * (ln n)" );
for i in range (n):
if (prime[i] > int ((i + 1 ) * math.log(i + 1 ))):
print ( "For n =" , (i + 1 ), ", nth prime number =" ,
prime[i], " " , prime[i], " >" , (i + 1 ),
"* ln(" , (i + 1 ), ")" );
# Driver Code
sieve();
verifyRosser( 20 );
# This code is contributed
# by mits


C#

// C# code to verify Rosser's Theorem
using System;
using System.Collections.Generic;
class GFG
{
static List< int > prime = new List< int >();
// Sieve of Eratosthenes
static void sieve()
{
// prime sieve to generate
// prime numbers efficiently
int n = 10000;
bool []isprime = new bool [n + 2];
for ( int i = 0; i < n; i++)
isprime[i] = true ;
isprime[0] = false ;
isprime[1] = false ;
for ( int i = 2; i <= n; i++)
{
if (isprime[i])
{
for ( int j = i * i;
j <= n; j += i)
isprime[j] = false ;
}
}
// store primes in prime[] vector
for ( int i = 0; i <= n; i++)
if (isprime[i])
prime.Add(i);
}
// Verifies ROSSER'S THEOREM for
// all numbers smaller than n.
static void verifyRosser( int n)
{
Console.WriteLine( "ROSSER'S THEOREM: " +
"nth prime number > n * (ln n)" );
for ( int i = 0; i < n; i++)
if (prime[i] > (i + 1) * Math.Log(i + 1))
{
Console.WriteLine( "For n = " + (i + 1) +
", nth prime number = " +
prime[i] + " " + prime[i] +
" > " + (i + 1) + " * ln(" +
(i + 1) + ")" );
}
}
// Driver code
public static void Main(String [] args)
{
sieve();
verifyRosser(20);
}
}
// This code is contributed by PrinciRaj1992


PHP

<?php
// PHP code to verify
// Rosser's Theorem
$prime ;
$y = 0;
// function show($x)
// {echo $x" = ".$x."";}
// Sieve of Eratosthenes
function sieve()
{
global $prime , $y ;
// prime sieve to generate
// prime numbers efficiently
$n = 100001;
$isprime = array_fill (0, ( $n + 2), true);
$isprime [0] = false;
$isprime [1] = false;
for ( $i = 2; $i <= $n ; $i ++)
{
if ( $isprime [ $i ])
{
for ( $j = $i * $i ;
$j <= $n ; $j += $i )
$isprime [ $j ] = false;
}
}
// store primes in
// prime[] vector
for ( $i = 0; $i <= $n ; $i ++)
if ( $isprime [ $i ])
$prime [ $y ++]= $i ;
}
// Verifies ROSSER'S THEOREM
// for all numbers smaller than n.
function verifyRosser( $n )
{
global $prime ;
echo "ROSSER'S THEOREM: nth " .
"prime number > n * (ln n)" ;
for ( $i = 0; $i < $n ; $i ++)
if ( $prime [ $i ] > (int)(( $i + 1) * log( $i + 1)))
{
echo "For n = " . ( $i + 1).
", nth prime number = " .
$prime [ $i ] . " " .
$prime [ $i ] . " > " .
( $i + 1) . " * ln(" .
( $i + 1) . ")" ;
}
}
// Driver Code
sieve();
verifyRosser(20);
// This code is contributed
// by mits
?>


Javascript

<script>
// JavaScript code to verify
// Rosser's Theorem
let prime = new Array();
let y = 0;
// function show(x)
// {echo x" = ".x."";}
// Sieve of Eratosthenes
function sieve()
{
// prime sieve to generate
// prime numbers efficiently
let n = 100001;
let isprime = new Array(n + 2).fill( true );
isprime[0] = false ;
isprime[1] = false ;
for (let i = 2; i <= n; i++)
{
if (isprime[i])
{
for (let j = i * i;
j <= n; j += i)
isprime[j] = false ;
}
}
// store primes in
// prime[] vector
for (let i = 0; i <= n; i++)
if (isprime[i])
prime[y++] = i;
}
// Verifies ROSSER'S THEOREM
// for all numbers smaller than n.
function verifyRosser(n)
{
document.write(
"ROSSER'S THEOREM: nth prime number > n * (ln n) <br>"
);
for (let i = 0; i < n; i++)
if (prime[i] > Math.floor((i + 1) * Math.log(i + 1)))
{
document.write( "For n = " + (i + 1) +
", nth prime number = " +
prime[i] + "<br>" +
prime[i] + " > " +
(i + 1) + " * ln(" +
(i + 1) + ")<br>" );
}
}
// Driver Code
sieve();
verifyRosser(20);
// This code is contributed by gfgking
</script>


输出:

ROSSER'S THEOREM: nth prime number > n * (ln n)For n = 1, nth prime number = 2    2 > 1 * ln(1)For n = 2, nth prime number = 3    3 > 2 * ln(2)For n = 3, nth prime number = 5    5 > 3 * ln(3)For n = 4, nth prime number = 7    7 > 4 * ln(4)For n = 5, nth prime number = 11    11 > 5 * ln(5)For n = 6, nth prime number = 13    13 > 6 * ln(6)For n = 7, nth prime number = 17    17 > 7 * ln(7)For n = 8, nth prime number = 19    19 > 8 * ln(8)For n = 9, nth prime number = 23    23 > 9 * ln(9)For n = 10, nth prime number = 29    29 > 10 * ln(10)For n = 11, nth prime number = 31    31 > 11 * ln(11)For n = 12, nth prime number = 37    37 > 12 * ln(12)For n = 13, nth prime number = 41    41 > 13 * ln(13)For n = 14, nth prime number = 43    43 > 14 * ln(14)For n = 15, nth prime number = 47    47 > 15 * ln(15)For n = 16, nth prime number = 53    53 > 16 * ln(16)For n = 17, nth prime number = 59    59 > 17 * ln(17)For n = 18, nth prime number = 61    61 > 18 * ln(18)For n = 19, nth prime number = 67    67 > 19 * ln(19)For n = 20, nth prime number = 71    71 > 20 * ln(20)

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享