Add lua + change cpp, js, rust and php, python, go to 30 iterations
parent
5a17b22d53
commit
bdf922b5c8
|
@ -61,10 +61,7 @@ void get_primes7(int n, vector<int> &res) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
std::time_t startTime = std::time(NULL);
|
for (int i = 0; i < 30; i++) {
|
||||||
std::time_t periodTime = (std::time_t) atoi(std::getenv("RUN_TIME"));
|
|
||||||
|
|
||||||
while ((std::time(NULL) - startTime) < periodTime) {
|
|
||||||
vector<int> res;
|
vector<int> res;
|
||||||
get_primes7(10000000, res);
|
get_primes7(10000000, res);
|
||||||
printf("Found %d prime numbers.\n", (int)res.size());
|
printf("Found %d prime numbers.\n", (int)res.size());
|
||||||
|
|
|
@ -3,8 +3,6 @@ package main
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
"os"
|
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func getPrimes7(n int) []int {
|
func getPrimes7(n int) []int {
|
||||||
|
@ -49,12 +47,8 @@ func getPrimes7(n int) []int {
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var startTime = time.Now()
|
|
||||||
var periodTime, _ = time.ParseDuration(os.Getenv("RUN_TIME") + "s")
|
|
||||||
|
|
||||||
var res []int
|
var res []int
|
||||||
|
for i := 0; i < 30; i++ {
|
||||||
for time.Since(startTime) < periodTime {
|
|
||||||
res = getPrimes7(10000000)
|
res = getPrimes7(10000000)
|
||||||
fmt.Printf("Found %d prime numbers.\n", len(res))
|
fmt.Printf("Found %d prime numbers.\n", len(res))
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ function get_primes7(n) {
|
||||||
var startTime = Date.now();
|
var startTime = Date.now();
|
||||||
var periodTime = parseInt(process.env.RUN_TIME, 10) * 1000
|
var periodTime = parseInt(process.env.RUN_TIME, 10) * 1000
|
||||||
|
|
||||||
while ((Date.now() - startTime) < periodTime) {
|
for (var i = 0; i < 30; i++) {
|
||||||
var res = get_primes7(10000000);
|
var res = get_primes7(10000000);
|
||||||
console.log("Found " + res.length + " prime numbers.");
|
console.log("Found " + res.length + " prime numbers.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
function get_primes7(n)
|
||||||
|
if n < 2 then return {} end
|
||||||
|
if n == 2 then return {2} end
|
||||||
|
|
||||||
|
local s = {}
|
||||||
|
for i = 3, n, 2 do
|
||||||
|
s[#s+1] = i
|
||||||
|
end
|
||||||
|
|
||||||
|
local mroot = math.floor(math.sqrt(n))
|
||||||
|
local half = #s
|
||||||
|
local i = 0
|
||||||
|
local m = 3
|
||||||
|
|
||||||
|
while m <= mroot do
|
||||||
|
if s[i+1] and s[i+1] ~= 0 then
|
||||||
|
local j = math.floor((m*m-3)/2) -- int div
|
||||||
|
s[j+1] = 0
|
||||||
|
while j < half do
|
||||||
|
s[j+1] = 0
|
||||||
|
j = j + m
|
||||||
|
end
|
||||||
|
end
|
||||||
|
i = i + 1
|
||||||
|
m = 2*i + 3
|
||||||
|
end
|
||||||
|
|
||||||
|
local res = {}
|
||||||
|
res[#res+1] = 2
|
||||||
|
|
||||||
|
for x = 1, #s do
|
||||||
|
if s[x] ~= 0 then
|
||||||
|
res[#res+1] = s[x]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return res
|
||||||
|
end
|
||||||
|
|
||||||
|
startTime = os.time(os.date("!*t"))
|
||||||
|
periodTime = os.getenv('RUN_TIME')
|
||||||
|
|
||||||
|
for i = 1, 30 do
|
||||||
|
local res = get_primes7(10000000)
|
||||||
|
print("Found " .. #res .. " prime numbers.")
|
||||||
|
end
|
|
@ -36,7 +36,7 @@ $periodTime = getenv('RUN_TIME');
|
||||||
|
|
||||||
$res = array();
|
$res = array();
|
||||||
|
|
||||||
while ((time() - $startTime) < $periodTime) {
|
for ($i = 0; $i < 30; $i++) {
|
||||||
$res = get_primes7(10000000);
|
$res = get_primes7(10000000);
|
||||||
print "Found ".count($res)." prime numbers.\n";
|
print "Found ".count($res)." prime numbers.\n";
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
||||||
def get_primes7(n):
|
def get_primes7(n):
|
||||||
"""
|
"""
|
||||||
standard optimized sieve algorithm to get a list of prime numbers
|
standard optimized sieve algorithm to get a list of prime numbers
|
||||||
|
@ -33,9 +32,6 @@ def get_primes7(n):
|
||||||
m = 2 * i + 3
|
m = 2 * i + 3
|
||||||
return [2] + [x for x in s if x]
|
return [2] + [x for x in s if x]
|
||||||
|
|
||||||
start_time = int(time.time())
|
for i in range(0, 30):
|
||||||
period_time = int(os.environ['RUN_TIME'])
|
|
||||||
|
|
||||||
while (int(time.time()) - start_time) < period_time:
|
|
||||||
res = get_primes7(10000000)
|
res = get_primes7(10000000)
|
||||||
print("Found {} prime numbers.".format(len(res)))
|
print("Found {} prime numbers.".format(len(res)))
|
||||||
|
|
23
primes.rs
23
primes.rs
|
@ -43,20 +43,19 @@ fn get_primes7(count: u32) -> Vec<u32> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let run_time_secs = match env::var("RUN_TIME") {
|
// let run_time_secs = match env::var("RUN_TIME") {
|
||||||
Ok(v) => match v.parse::<u32>() {
|
// Ok(v) => match v.parse::<u32>() {
|
||||||
Ok(i) => i,
|
// Ok(i) => i,
|
||||||
Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
// Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
||||||
},
|
// },
|
||||||
Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
// Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
||||||
};
|
// };
|
||||||
|
|
||||||
let run_time = Duration::new(run_time_secs as u64, 0);
|
// let run_time = Duration::new(run_time_secs as u64, 0);
|
||||||
let start = Instant::now();
|
// let start = Instant::now();
|
||||||
|
|
||||||
while start.elapsed() < run_time {
|
for x in 0..29 {
|
||||||
let primes = get_primes7(PRIMES_COUNT);
|
let primes = get_primes7(PRIMES_COUNT);
|
||||||
println!("Found {} prime numbers.", primes.len());
|
println!("Found {} prime numbers.", primes.len());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue