procedure TForm1.Button1Click(Sender: TObject);
var
m,i:integer;
begin
for m:=101 to 200 do
for i:=2 to trunc(sqrt(m)) do
if m mod i=0 then
break;
if i>=trunc(sqrt(m))+1 then
begin
memo1.lines.add(inttostr(m));
end;
end;我想让最后算到的数值显示在memo控件里,上面的代码我知道不对,请高手解答,谢谢,本人初学Delphi,勿怪!
var
m,i:integer;
begin
for m:=101 to 200 do
for i:=2 to trunc(sqrt(m)) do
if m mod i=0 then
break;
if i>=trunc(sqrt(m))+1 then
begin
memo1.lines.add(inttostr(m));
end;
end;我想让最后算到的数值显示在memo控件里,上面的代码我知道不对,请高手解答,谢谢,本人初学Delphi,勿怪!
解决方案 »
- 我也散一把!楼数 Mod 10 =0 的20分,活动日期截止到2008-4-29 17:00:00 绝不食言!
- 如何使用DRAWGRID中已画出的RECTANGLE一直不变化?
- 50分 请教Ehlib3.0的完整的安装,卸载方式。
- 一个非常很酷,难的问题,100分相送!
- 怎樣將float型的數值轉化成百分數形式﹖
- 请问谁能提供TreeView表现层次数据的例子,数据表中有(id,parent_id等字段)?
- 200分!!!共享有价值的经验-----有高手乎??Delphi 操作WORD模板中的具体对象!!!
- 关于web servies的问题,请大家帮忙。用过web app debugger的最好。
- Numega BoundsChecker 集成
- Chromium控件执行javascript后,如何取得返回值?
- 算法高手请进! 求Delphi中树的表示方法(不要告诉我用TreeView)
- delphi 2010太强了,支持中文变量
procedure TForm1.Button1Click(Sender: TObject);
var
m,i:integer;
begin
for m:=101 to 200 do
for i:=2 to trunc(sqrt(m)) do
begin
if m mod i=0 then
break;
if i>=trunc(sqrt(m))+1 then
begin
memo1.lines.add(format('%d ',[m]));
end;
end;
end;
不知道咋整
var
m, i: integer;
isPrime : Boolean;
begin
for m := 101 to 200 do
begin
isPrime := True;
for i := 2 to trunc(sqrt(m)) do
begin
if m mod i = 0 then
begin
isPrime := False;
break;
end;
end;
if isPrime then
begin
Memo1.lines.add(format('%d ', [m]));
end;
end;
end;
小改了一下。
根据你的代码,我们假设,
m = 101时的情况,101应该是个素数了吧
m = 101时,根据“for i:=2 to trunc(sqrt(m)) do”,i的取值就变成了2 - 10
而即使是最大的 i = 10的情况,
也不满足 i>=trunc(sqrt(m))+1,
那么后面写到memo中的代码不可能被执行到,其他的数字可以类推4楼的方法应该可行
procedure TForm1.Button1Click(Sender: TObject);
var
m,i,k:integer;
begin
k:=trunc((sqrt(m)));
for i:=2 to k do
if m mod i=0 then
break;
if i>=k+1 then
begin
showmessage(inttostr(m)+'是素数!');
exit;
end
else
begin
showmessage(inttostr(m)+'不是素数!');
exit;
end;
{这个是判断一个数m是否为素数,这个是可以的}