دوست من علي آقا
من تو گشتن بين صفحه ها به اين تاپيك برخوردم.
اين جواب رو كه به نظر من رسيده براي اين عليرغم اين مدت دير مينويسم تا اگه دوستان ديگه اي هم مثل من برخوردن به اين تاپيك بتونن روش كار كنن.
ببين علي آقا
شما از يه متغير كمكي براي شمارش تعداد تقسيمات داراي باقيمانده صفر استفاده كردين ولي نيومدين اون رو براي هر عدد جديدي كه مورد بررسي قرار ميگيره صفر كنين تا مقدار محاسبه شده براي اعداد قبلي را به حساب نياره.
يعني بايد يه جابجايي تو اون خط برنامه بدي كه ميشه اين
....
a,b,c,d,i : integer ;
begin
از اينجا حذف d:=0;
a := StrToInt(edit1.Text);
b := StrToInt(edit2.Text);
for i:=a+1 to b-1 do
begin
به اينجا منتقلd:=0;
for c:=1 to b do
....
.كه با اين كار با هر بار اجراي حلقه اصلي مقدار اين متغير هم صفر ميشه و برنامه كار ميكنه
كد كامل رو هم برات ميذارم تا راحت به فرمت انتقال بدي.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
ListBox1: TListBox;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d,i : integer ;
begin
a := StrToInt(edit1.Text);
b := StrToInt(edit2.Text);
for i:=a+1 to b-1 do
begin
d:=0;
for c:=1 to b do
begin
if (i mod c)=0 then d:=d+1;
end;
if d=2 then
begin
listbox1.Items.Add(inttostr(i));
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.
پيروز باشين.