You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi Pascal 5实现埃拉托斯特尼筛法运行无输出问题求助

修复说明

你已完成埃拉托斯特尼筛法的核心计算逻辑,程序无输出是因为缺少将计算结果写入界面控件的代码,你界面上已配备TMemo组件Memo1,直接调用该组件输出结果即可。

修改后的完整代码

procedure TForm1.BerechnenClick(Sender: TObject);
const
n = 200;
var
   zahl : array [2..n] of boolean;
   p,i,v : integer;
   weiter : boolean;
begin
   // 筛法核心逻辑
   for i := 2 to n do zahl[i] := true;
   p := 2;
   while p <= n do
   begin
        v := 2*p;
        while v <= n do
        begin
             zahl[v] := false;
             v := v+p;
        end;
        p := p+1;
        weiter := false;
        if p <= n then weiter := true;
        while weiter do
         if (p<=n) and (zahl[p] = false)
         then
           p := p+1
         else
           weiter := false;
   end;

   // 新增:输出结果到Memo1
   Memo1.Clear;
   Memo1.Lines.Add('2到' + IntToStr(n) + '范围内的质数:');
   for i := 2 to n do
   begin
     if zahl[i] then
       Memo1.Lines.Add(IntToStr(i));
   end;
end;

可选优化项

如果你需要自定义质数计算的上限,不用固定写死为200,可以读取Edit1输入框的数值:

  • 删除const n = 200;定义
  • 在变量声明区新增n: Integer;
  • 过程开头添加代码:n := StrToIntDef(Edit1.Text, 200);,输入非法值时会默认使用200作为上限

内容的提问来源于stack exchange,提问作者Schreiberkugel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:45:03