永发信息网

求2147483647是否是素数 pascal语言

答案:2  悬赏:40  手机版
解决时间 2021-01-25 00:10
  • 提问者网友:欺烟
  • 2021-01-24 08:31
求2147483647是否是素数 pascal语言
最佳答案
  • 五星知识达人网友:玩世
  • 2021-01-24 10:10
要求一个数是不是质数只要枚举这个数开根号的数就行了,因为如果这个数不是质数的话,在这个范围内会有一个数整除这个数,最坏情况是sqrt(n)*sqrt(n)=n

时间复杂度O(sqrt(n))可以接受

具体代码在下面,希望能帮到你

var
n,i:longint;
prime:boolean;
begin
n:=2147483637;
prime:=true;
for i:=1 to trunc(sqrt(n)) do
if(n mod i=0)
then begin
prime:=false;
break;
end;
if(prime)writeln('YES')else writeln('NO');
end.
全部回答
  • 1楼网友:平生事
  • 2021-01-24 10:58

数字并不是很大啊。按照朴素的做法来就可以了。我的程序判断出它是素数

program prime; const   num=2147483647; var   i:longint; begin   for i:=2 to trunc(sqrt(num))+1 do   begin     if num mod i=0 then     begin     writeln('number 2147483647 is not a prime.');     halt;     end;   end;   writeln('number 2147483647 is a prime'); end.   

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯