我是电脑程序编制员。我正在使用 C 语言中的消息传递接口 (MPI)。我执行了一个程序,该程序包括查找从 1 到 10,000,000 的连续素数。
我已经做到了!但我用试除法来做,测试数字的平方根,看看它是否是素数。
例如,要检查一个数字 n,如果它是素数:
int Isprime(int n){
for(i = 2; i <= ceil(sqrt(n)); i++)
{
if(n%i == 0)
return 0;
}
return 1; }
意思是如果一个数 i 小于或等于指定数的平方根,并且 i 除以它,则指定数不是素数。
有人知道更准确的东西吗?我的意思是这样做更有效率?有没有更有效的算法来确定一个数字是否是素数?我忽略了素数的一些重要性质吗?
我的程序的运行时间很好,但我想要更多!:) 想法?
我还想提一下,我不想访问数字列表,因为我的程序不使用主从模型。我没有 MPI_Send 也没有 MPI_Recv。
我也看到了一些关于 Miller-Rabin primalirity test 的东西,但我不明白......
无论如何,想法?