gpt4 book ai didi

PHP 更快的素数生成器

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:57 25 4
gpt4 key购买 nike

<分区>

嘿伙计们,我正试图从我的生成器中挤出更多的素数,但在 60 秒的运行中达到了 +- 14,000,000 左右的素数极限,如果可能的。关于如何完成这一壮举有什么想法吗?

这是我的 php 代码

<?php
$i = 2;
$primes = array();
while(true)
{
$prime=true;
$sqrt=floor(sqrt($i));
foreach($primes as $num)
{
if($i%$num==0)
{
$prime=false;
break;
}
if($num>$sqrt) break;
}
if($prime) echo "$i\n";
$i++;
}

这是运行它的小 bash 脚本

#!/bin/bash
outfile="$1.out"
`php $1 > $outfile &`
sleep 60
killall php

编辑

这是昨晚的 pcntl_forked 版本,只是为了看看什么会更快。出于某种奇怪的原因,我做的 fork 越少越快,我发现了瓶颈来自 gmp_strval(gmp_nextprime($start)),它非常慢。

<?php
$primeCount = 0;
for ($i = 1; $i <= 1; ++$i) {
$start = $i;
$pid = pcntl_fork();

if (!$pid) {
while(true) echo $start = gmp_strval(gmp_nextprime($start)) . "\n";
exit($i);
}
}

while (pcntl_waitpid(0, $status) != -1) {
$status = pcntl_wexitstatus($status);
#echo "Child $status , $primeCount completed\n";
}
die;

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com