본문 바로가기
델파이 프로그래밍 정보

1. 1~100까지의 소수 구하기

by 차후 2014. 2. 25.
728x90
반응형



소수 : 1또는 자기자신으로만 나누어지는 수


unit Unit1;


interface


uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;


type

  TForm1 = class(TForm)

    ListBox1: TListBox;

    ListBox2: TListBox;

    procedure FormCreate(Sender: TObject);

    procedure Sosu;

  private

    { Private declarations }

  public

    { Public declarations }

  end;


var

  Form1: TForm1;

  Su : array [1..500] of Integer;


implementation


{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);

begin

  sosu;

end;


procedure TForm1.Sosu;

var

  i, j : Integer;

begin

  for i := 2 to 10 do  // 2의배수, 3의배수, 4의배수...

  begin

    for j := 2 to 50 do  // 50까지 곱한 이유는 예를들어 98이면 2 * 49을해야됨

    begin

      Su[i * j] := 1; // 2,3,4..10의배수는 1로 표시, 소수는 0

    end;

  end;


  Su[1] := 1; // 1은 소수가 아님


  for i := 1 to 100 do

  begin

    if Su[i] = 0 then

    begin

      listbox1.Items.Add(IntToStr(i));

    end;

  end;



  for i := 1 to 100 do

  begin

    listbox2.Items.Add('Su['+IntToStr(i)+']= '+IntToStr(Su[i]));

  end;

end;


end.

728x90
반응형

댓글