{Użytkownik do pola edycyjnego ma wpisa liczbe n zdefiniuj
odpowiednią funkcje i uzywając jej wypisz w listboxie
wszystkie te liczby pierwsze mniejsze od N(grupujac je po
20 w listboxie)foofooktórych suma cyfr jest liczbą pierwsza.) }
// nie wiem jak zrobić podkreśloną część polecenia
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
function pierwsza (arg:integer):Boolean;
var I :Integer;
begin
pierwsza :=true;
for I:=2 to round(sqrt(arg)) do
if(arg mod I)=0 then pierwsza := false
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Const CoIleEnter=20;
Var I, Q: Integer;
x: Integer;
pom:Integer;
Begin
x:=StrToInt(Edit1.Text);
I := 0;
Q := 1;
For pom:=1 to x-1 do // dlaczego trzeba zrobi x-1(Jesli robiłem do x to wypisywało mi 1 liczbe za dużo
Begin
Inc(Q);
if Pierwsza(Q) Then
Begin
Inc(I);
ListBox1.Items.Add(IntToStr(Q));
if (I Mod CoIleEnter) = 0 Then
ListBox1.Items.Add('');
End;
End;
End;
end.
dwa pytania
- Jak napisac poprawnie ten program(treść w komentarzu na górze)
2)dlaczego trzeba zrobić x-1 miejsce odznaczone komentarzem
Proszę o odpowiedz.