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() {
|
||||
std::time_t startTime = std::time(NULL);
|
||||
std::time_t periodTime = (std::time_t) atoi(std::getenv("RUN_TIME"));
|
||||
|
||||
while ((std::time(NULL) - startTime) < periodTime) {
|
||||
for (int i = 0; i < 30; i++) {
|
||||
vector<int> res;
|
||||
get_primes7(10000000, res);
|
||||
printf("Found %d prime numbers.\n", (int)res.size());
|
||||
|
|
|
@ -3,8 +3,6 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
func getPrimes7(n int) []int {
|
||||
|
@ -49,12 +47,8 @@ func getPrimes7(n int) []int {
|
|||
}
|
||||
|
||||
func main() {
|
||||
var startTime = time.Now()
|
||||
var periodTime, _ = time.ParseDuration(os.Getenv("RUN_TIME") + "s")
|
||||
|
||||
var res []int
|
||||
|
||||
for time.Since(startTime) < periodTime {
|
||||
for i := 0; i < 30; i++ {
|
||||
res = getPrimes7(10000000)
|
||||
fmt.Printf("Found %d prime numbers.\n", len(res))
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ function get_primes7(n) {
|
|||
var startTime = Date.now();
|
||||
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);
|
||||
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();
|
||||
|
||||
while ((time() - $startTime) < $periodTime) {
|
||||
for ($i = 0; $i < 30; $i++) {
|
||||
$res = get_primes7(10000000);
|
||||
print "Found ".count($res)." prime numbers.\n";
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ import os
|
|||
import sys
|
||||
import time
|
||||
|
||||
|
||||
def get_primes7(n):
|
||||
"""
|
||||
standard optimized sieve algorithm to get a list of prime numbers
|
||||
|
@ -33,9 +32,6 @@ def get_primes7(n):
|
|||
m = 2 * i + 3
|
||||
return [2] + [x for x in s if x]
|
||||
|
||||
start_time = int(time.time())
|
||||
period_time = int(os.environ['RUN_TIME'])
|
||||
|
||||
while (int(time.time()) - start_time) < period_time:
|
||||
for i in range(0, 30):
|
||||
res = get_primes7(10000000)
|
||||
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() {
|
||||
let run_time_secs = match env::var("RUN_TIME") {
|
||||
Ok(v) => match v.parse::<u32>() {
|
||||
Ok(i) => i,
|
||||
Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
||||
},
|
||||
Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
||||
};
|
||||
// let run_time_secs = match env::var("RUN_TIME") {
|
||||
// Ok(v) => match v.parse::<u32>() {
|
||||
// Ok(i) => i,
|
||||
// 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 start = Instant::now();
|
||||
// let run_time = Duration::new(run_time_secs as u64, 0);
|
||||
// let start = Instant::now();
|
||||
|
||||
while start.elapsed() < run_time {
|
||||
let primes = get_primes7(PRIMES_COUNT);
|
||||
for x in 0..29 {
|
||||
let primes = get_primes7(PRIMES_COUNT);
|
||||
println!("Found {} prime numbers.", primes.len());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue