回 帖 发 新 帖 刷新版面

主题:求delphi中求500以内的素数算法

请问以下代码有什么不对:

procedure Tlaji.countClick(Sender: TObject);
var
   i,j,k:integer;
   st:string;
      flag:boolean;
begin
   for i:=2 to 500 do

    flag:=true;
    k:=trunc(sqrt(i));
    for j:=2 to k do
   begin
      if(i mod j =0)then
      begin
      flag:=false;
      break;
      end ;

 if i mod j<>0 then
     begin
     st:=st+''+inttostr(i);
     memo1.Lines.Add(st);
      end
      end
end;

回复列表 (共10个回复)

沙发

具体没看
至少你第一个循环少了begin 和 end

板凳

这个问题我也在研究,但也没结果
希望快点可以有答案

3 楼

var
   i,j,k:integer;
   st:string;
   flag:boolean;
begin
   for i:=2 to 500 do
   begin
    flag:=true;
    k:=trunc(sqrt(i));
    for j:=2 to k do
    begin
      if (i mod j) =0then
      begin
        flag:=false;
        break;
      end;
      if (i mod j)<>0 then
      begin
        continue;
      end;
    end;
    if flag then
    begin
      memo1.Lines.Add(inttostr(i));
    end;
  end;
end;

4 楼

楼上的高手说的相当的有道理,顶!

5 楼

你楼上的再加一句就完美了:
在begin循环前加句
memo1.clear;

6 楼

&#35841;&#30693;&#36947; 2^63 &#32032;&#25968;&#30340;&#31639;&#27861; 

7 楼


8 楼

谁知道算 2^36 素数的算法

9 楼

if i mod j<>0 then
     begin
     st:=st+''+inttostr(i);
     memo1.Lines.Add(st);
      end
      end
end;

就拿最后这个 if then 来说,这里都不要  ";"了吗?   end   end 两个后面都没有  ';' 哇,好样的

10 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

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