pascal语言中,怎们用一句命令来判断素数?

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:46:22

不可能的。
素数是数论里面一个基础性的东西,但是他的特性也极其奇怪的东西。
例如,数学家努力到现在,还没有素数的通项公式。甚至连判断素数的方法只有下面一种,就是最古老,最苯的合数删除方法。
例如要求277是不是素数,
首先把从2到277每个整数列出来。
第一轮,选出2,把所有2的倍数删除掉。
再在剩下没有被删除的整数中选取最小的一个(第二轮是3),删除他的所有的倍数(第二轮是所有3的倍数),
之后再选最小的一个,再删。
如果整个过程277都没有被删除,那么它就是素数了。

其实这个过程的同时,也找到了从2到277的所有的素数。

古今中外,求素数独此一招,别无它法。
这也是素数经常用在加密技术上,因为当素数很大的时候(上百位),几乎不可能判断它是否为素数。

有个函数,你可以考虑一下怎么把它优化一下吧
function IsPrime (N: Integer): Boolean;
var
Test: Integer;
begin
IsPrime := True;
for Test := 2 to N - 1 do
if (N mod Test) = 0 then
begin
IsPrime := False;
break;
end;
end;

for Test := 2 to N - 1 do 建议改成

for Test := 2 to (N开方) do

至于为什么自己想吧

一句?
没有函数,就写不出来.