回 帖 发 新 帖 刷新版面

主题:一道我认为的难题~~~~~~~

求1-100之间的素数。

注:素数是大于1,且除了1和它本身外,不能被其它任何整数所整除的整数。

回复列表 (共6个回复)

沙发

/* c++算法 */

for(i=2;i<=100;flag=1,i++)
  {for(j=2;j<=sqrt(i);j++)
    if(!i%j) {flag=0;break;}
   if(flag) cout<<i;
  }

板凳

var
             i,k,n : integer;
             prime : boolean;
          begin
            for i := 2 to 100 do begin
              prime := true;
              n := trunc(sqrt(i));
              k := 2;
              while (k <= n) and prime do begin
                if i mod k = 0 then prime := false;
                k := k+1;
              end;
              if prime then write(i:8);
            end;
          end.

3 楼

var
i,j,count:integer;
flag:boolean;
begin
count:=0;
for i:=2 to 100 do
begin
flag:=true;
for j:=2 to round(sqrt(i)) do
if i mod j=0 then flag:=false;
if flag then
begin
write(i:3);
count:=count+1;
/*if count mod 5=0 then writeln;*/(美观)
end;
end;
end.

4 楼

筛法 书上有

5 楼

为什么可以用
n := trunc(sqrt(i));??

6 楼

[em2]因为一个数的因数只在他平方根以内(n/sqrt(n)+1是小于N的,而小的已经穷举过了).

我来回复

您尚未登录,请登录后再回复。点此登录或注册