Added 3byte prime numbers
This commit is contained in:
parent
580218a265
commit
69ae3f72fb
|
@ -0,0 +1,57 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>The complete list of primes.</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="author" content="Luis Silvestre">
|
||||
<link rel="stylesheet" type="text/css" href="calculate-primes.html.css">
|
||||
<!--
|
||||
It is javascipt. What else were you expecting?
|
||||
Author: Luis Silvestre
|
||||
-->
|
||||
|
||||
<script type="text/javascript">
|
||||
function isPrime(_n)
|
||||
{
|
||||
var _isPrime=true;
|
||||
var _sqrt=Math.sqrt(_n);
|
||||
for(var _i=2;_i<=_sqrt;_i++)
|
||||
if((_n%_i)==0) _isPrime=false;
|
||||
return _isPrime;
|
||||
}
|
||||
|
||||
function li(_o)
|
||||
{
|
||||
var _n=i + 100;
|
||||
var what="";
|
||||
for(;i<_n;++i){
|
||||
if(isPrime(i)){
|
||||
what += i.toString()+"; ";
|
||||
}
|
||||
}
|
||||
document.getElementById("texto").firstChild.nodeValue = what;
|
||||
//appendChild(mytext);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="orangebox">
|
||||
<p> In this website we list <b> all </b> prime numbers. Every single one of them. <a href="javascript:li()"> Next page. </a></p>
|
||||
</div>
|
||||
|
||||
<div id="texto" class="whitebox" style="height:100000px; border:0px;">
|
||||
If you can read this, that means that your browser has javascript off and this page is not working.
|
||||
</div> <br />
|
||||
|
||||
<script type="text/javascript">
|
||||
i =4294967200;
|
||||
li();
|
||||
</script>
|
||||
|
||||
<div class="orangebox"> <a href="javascript:li()"> Next page. </a> </div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
body {
|
||||
font:100% Sans-Serif,Helvetica,Verdana,Tahoma;
|
||||
background-color:#DDDDDD;
|
||||
/*background-image: url('icons/background2.png');
|
||||
background-repeat: repeat*/
|
||||
}
|
||||
|
||||
/*<-- background-image:
|
||||
url('icons/background.png');
|
||||
background-repeat: repeat -->*/
|
||||
|
||||
h2 {font-size:2.5em}
|
||||
|
||||
a {text-decoration:none; color:#003030; font-weight:bold}
|
||||
|
||||
a:hover {color:purple; font-weight:bold}
|
||||
|
||||
img {border: none; vertical-align:middle}
|
||||
|
||||
p {vertical-align:middle}
|
||||
|
||||
#mainbox {border-width:0px; margin:2px; text-align:left; min-height:413px; padding-left:15px;background-color:white;}
|
||||
|
||||
.header {height:50px; font-weight:bold; font-size: 200%; vertical-align:middle;}
|
||||
|
||||
#additionaltools {float:right; border-style:dotted; padding:1px;background-color:white; width:260px;}
|
||||
|
||||
#membrete {position: absolute; top: 10px; left:500px}
|
||||
|
||||
.photo {float:right;}
|
||||
|
||||
.fakelink {color:teal; font-weight:bold}
|
||||
|
||||
.description {padding-left: 40pt;}
|
||||
|
||||
.orangebox {border-width:0px; background-color: #FFEECC; margin:15px; padding: 5px; text-align:left;}
|
||||
|
||||
.MathTeX {display:none; background-color: #FFEECC;}
|
||||
|
||||
.whitebox {
|
||||
font:100% Sans-Serif,Helvetica,Verdana,Tahoma;
|
||||
border-width:0px;
|
||||
background-color: white;
|
||||
margin:15px;
|
||||
padding: 5px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
/* Title Bar - stolen from somewhere
|
||||
===================================== */
|
||||
|
||||
h1
|
||||
{
|
||||
margin: 0;
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
h1 a
|
||||
{
|
||||
display: block;
|
||||
padding: 30px 20px;
|
||||
border-top: 1px solid #9e2121;
|
||||
border-bottom: 1px solid #4a0404;
|
||||
text-align: center;
|
||||
|
||||
/* These are all various ways of setting the background color, */
|
||||
/* designed so that at least one will work on any browser */
|
||||
background-color: #7d0101;
|
||||
background: -moz-linear-gradient(top, #7d0101 0%, #651110 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #7d0101), color-stop(100%, #651110));
|
||||
background: -webkit-linear-gradient(top, #7d0101 0%, #651110 100%);
|
||||
background: -o-linear-gradient(top, #7d0101 0%, #651110 100%);
|
||||
background: -ms-linear-gradient(top, #7d0101 0%, #651110 100%);
|
||||
background: linear-gradient(top, #7d0101 0%, #651110 100%);
|
||||
}
|
||||
|
||||
h1 a, h1 a:hover
|
||||
{
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#title-left
|
||||
{
|
||||
padding: 11px 0;
|
||||
}
|
||||
|
||||
#title-right img
|
||||
{
|
||||
height: auto;
|
||||
width: auto;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
import numpy as np
|
||||
import time
|
||||
import os
|
||||
|
||||
def clear_terminal():
|
||||
"""Clear the terminal screen."""
|
||||
os.system('cls' if os.name == 'nt' else 'clear')
|
||||
|
||||
def sieve_of_eratosthenes(limit):
|
||||
"""Sieve of Eratosthenes to find all primes up to 'limit'."""
|
||||
sieve = np.ones(limit // 3 + (limit % 6 == 2), dtype=bool)
|
||||
sieve[0] = sieve[1] = False # 0 and 1 are not prime
|
||||
|
||||
# Iterate only for numbers that are prime
|
||||
for i in range(1, int(limit**0.5) // 3 + 1):
|
||||
if sieve[i]:
|
||||
prime = 3 * i + 1
|
||||
sieve[3 * i + prime::prime * 3] = False
|
||||
|
||||
primes = [2, 3]
|
||||
for i in range(1, len(sieve)):
|
||||
if sieve[i]:
|
||||
primes.append(3 * i + 1)
|
||||
return primes
|
||||
|
||||
def write_prime_to_file(prime, filename):
|
||||
"""Write the hexadecimal and decimal representation of a prime number to the file."""
|
||||
hex_prime = f"{prime:08X}" # Convert to hex with leading zeros (8 digits)
|
||||
with open(filename, 'a') as f: # Open in append mode
|
||||
f.write(f"{hex_prime} {prime}\n")
|
||||
|
||||
def main():
|
||||
limit = 4294967295
|
||||
filename = 'primes.txt'
|
||||
|
||||
# Start the sieve calculation and time it
|
||||
start_time = time.time()
|
||||
total_primes = 0
|
||||
|
||||
for prime in sieve_of_eratosthenes(limit):
|
||||
total_primes += 1
|
||||
write_prime_to_file(prime, filename)
|
||||
|
||||
# Clear the terminal and update information
|
||||
clear_terminal()
|
||||
|
||||
elapsed_time = time.time() - start_time
|
||||
estimated_time_left = (elapsed_time / total_primes) * (len(primes) - total_primes) if total_primes > 0 else 0
|
||||
|
||||
# Print the last prime, elapsed time, estimated time left, and total primes found
|
||||
print(f"Last Prime Found: {prime}")
|
||||
print(f"Total Primes Found: {total_primes}")
|
||||
print(f"Elapsed Time: {elapsed_time:.2f} seconds")
|
||||
print(f"Estimated Time Left: {estimated_time_left:.2f} seconds")
|
||||
|
||||
# Print final completion message
|
||||
print(f"Finished calculating primes up to {limit}.")
|
||||
print(f"Total Primes Found: {total_primes}")
|
||||
print(f"Total Elapsed Time: {elapsed_time:.2f} seconds")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
|
||||
maxint=9223372036854775807
|
||||
root=3037000499
|
||||
destination=4294967295
|
||||
|
||||
rm -f prime.list
|
||||
|
||||
SECONDS=0
|
||||
n=0
|
||||
|
||||
echo "Counting number of primes..."
|
||||
size=$(cat source.list | wc -l)
|
||||
|
||||
echo "00000001 1" >> prime.list
|
||||
|
||||
while read -r prime; do
|
||||
hex=$(printf "%08X" "${prime:0:-1}")
|
||||
echo "$hex $prime" >> prime.list
|
||||
if [[ $((n%100)) == 0 ]]; then
|
||||
clear
|
||||
rate=$((SECONDS*1000000/(n+1)))
|
||||
estsec=$((rate*size/1000000))
|
||||
remsec=$((estsec-SECONDS))
|
||||
echo "Running Time: $((SECONDS/86400)) days, $(((SECONDS%86400)/3600)) hours, $(((SECONDS%3600)/60)) minutes and $(((SECONDS%60))) seconds..."
|
||||
echo "Remaining Time: $((remsec/86400)) days, $(((remsec%86400)/3600)) hours, $(((remsec%3600)/60)) minutes and $(((remsec%60))) seconds..."
|
||||
echo "Processed $n of $size PRIME numbers at an average rate of $((n/(SECONDS+1))) per second..."
|
||||
echo "Latest Prime Number: $prime"
|
||||
echo "Destination Number: $destination [$((n*100/size)) %]"
|
||||
fi
|
||||
((n++))
|
||||
done < source.list
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue