想判断一下一个素数,但是程序总是停不住,一闪而过。刚学delphi,
感觉不行啊,哎,帮忙了。
program Project1;{$APPTYPE CONSOLE}uses
  SysUtils;function prime(var n:Integer):Boolean;
Var  x,i:Integer;
begin
  x:=n div 2;
  for i:=0 to x do
    if n div i=0 then
      begin
       Result:=True;
       break;
       end
    else Result:=False;end;
var ok:Boolean;
var xx:Integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
               xx:=8;
 ok:=Prime(xx);
 WriteLn('dfdfdfdfd');///这几行都是测试的看不清结果。
 ReadLn;
 WriteLn('ok');
end.

解决方案 »

  1.   

    如果运行一个程序,设断点才能让她能停留下来,还有什么意思???我不用
    做成exe让别人运行嘛??
      

  2.   

    要设短点才能运行的话还有什么意思啊。
    不能象c那样有个getchar()嘛???
    如果做了个exe这还不是照样一闪而过?
      

  3.   

    if n div i=0 then
    ???出错了当然提前结束?不知道被除数不能为0吗?
      

  4.   

    你的程序有错才会这样。
    看看这两行代码,i为0则n div 0肯定会引发错误!!
      for i:=0 to x do
        if n div i=0 then
      

  5.   

    阿??wo ft.......
    delphi的除法也真怪,如果是取模可怎么办阿?
    还有x:=sqrt(n);用不了真是不习惯delphi的语法。
      

  6.   

    当然可以用,开方后是浮点数,x要定义成浮点数,定义为integer当然不行,最好花点时间把基础搞搞清楚为什么要从0到n div 2,是你程序设计有问题~~~应该是2到sqrt(n),除0和1有何意义?
      

  7.   

    取模 mod 
     procedure TForm1.Button1Click(Sender: TObject);
    var  S, Temp: string;
    begin
       Str(Sqr(5.0):3:1, Temp);
       S := '5 squared is ' + Temp + #13#10;
       Str(Sqrt(2.0):5:4, Temp);
       S := S + 'The square root of 2 is ' + Temp;
       MessageDlg(S, mtInformation, [mbOk], 0);
    end;