求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.
时间复杂度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.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯