参考答案和解析
正确答案:

 

begin
fillchar(p,sizeof(p),true);
p[1]:=false;
i:=2;
while i<50000 do begin
if p[i] then begin
j:=i*2;
while j<50000 do begin
p[j]:=false;
inc(j,i);
end;
end;
inc(i);
end;
l:=0;
for i:=1 to 50000 do
if p[i] then begin
inc(l);pr[l]:=i;
end;
end;{getprime}

function prime(x:longint):integer;
var i:integer;
begin
prime:=false;
for i:=1 to l do
if pr[i]>=x then break
else if x mod pr[i]=0 then exit;
prime:=true;
end;{prime}

更多“B.判断longint范围内的数是否为素数(包含求50000以内的素数表):procedure getprime;var i,j:long ”相关问题
  • 第1题:

    程序填空完成功能:求出1000以内的全部素数。 #include<iostream> using namespace std; int main(){ const int m=1000; int i,j,isprime; for (i=2;i<1000;i++){ isprime=1; for (j=i-1;j>1;j--) if (i%j==0) 【 】; if (isprime) cout<<i<<','; if (i%3==0) cout<<endl; } return 0; }


    isprime=0

  • 第2题:

    编写被调函数,求出1000以内的素数。在主函数中调用函数输出1000以内的素数,要求每行输出5个素数。注意:判断一个数是否是素数,必须写在单独函数int isprime(int x)中,不能写在主函数中


  • 第3题:

    1. 100以内素数之和 描述 求100以内所有素数之和并输出。‬‮‬ 素数指从大于1,且仅能被1和自己整除的整数。‬ 提示:可以逐一判断100以内每个数是否为素数,然后求和。


    2, i

  • 第4题:

    下面()是正确的判断素数程序(m>1)。

    A.j=0; for (i =2; i<=m-1; i++) if (m % i != 0) j++; if(j==m-2) printf(“%d是素数n", m);

    B.j=0; for (i =2; i<=m-1; i++) if (m % i == 0) j++; if(j==0) printf(“%d是素数n", m);

    C.flag=0; for (i =2; i<=m-1; i++) if (m % i == 0) flag=1; if(flag==0) printf(“%d是素数n", m);

    D.for (i =2; i<=m-1; i++) if (m % i == 0) i=m+2; if(i==m+3) printf(“%d是素数n", m);


    D

  • 第5题:

    1、程序填空完成功能:求出1000以内的全部素数。 #include<iostream> using namespace std; int main(){ const int m=1000; int i,j,isprime; for (i=2;i<1000;i++){ isprime=1; for (j=i-1;j>1;j--) if (i%j==0) 【 】; if (isprime) cout<<i<<','; } return 0; }


    (1) i(2) j=i-1(3)isprime=0