Unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
A:array of shortint;
implementation
{$R *.dfm}
Function P(A:integer):boolean;
Var
d,K:integer;
Begin
P:=true;
if A < 2 then P:=false
else
if A < 4 then P:=true
else
if A mod 2 = 0 then P:=false
else
Begin
K:=Trunc(Sqrt(A));
d:=3;
While d <= K do
Begin
if A mod d = 0 then P:=false;
d:=d+2
End;
End;
End;
procedure TForm1.Button1Click(Sender: TObject);
Var
N:integer;
begin
Randomize;
Edit2.Text:='';
N:=StrToInt(Edit1.Text);
SetLength(A,N);
For N:= 0 to N-1 do
Begin
A[N]:=Trunc(Sin(random(20))*20);
if P(A[N]) then Edit2.Text:=Edit2.Text+IntToStr(A[N])+'0 '
else Edit2.Text:=Edit2.Text+IntToStr(A[N])+' '
End;
end;
end.
Ответ:
а) 12211
б) 22211
Объяснение:
чтобы легче найти ответ на такие типы, нужно начинать с конца, то есть для варианта а) с 16, самая "сильная" операция здесь умножение на 3, чтобы получить 1, нужно как можно чаще делать это действие, и так как мы начинаем с конца, мы заменяем действия на обратные, то есть на деление и сложение соответственно, 16 не делится на 3, значит прибавляем 1 до тех пор, пока число не станет на него делится
такое число 18 делим его на 3 получаем 6, видим, что опять можно применить самую "сильную операцию", делим 3 получаем 2
ну и тут, не трудно догадаться, что надо прибавить один:)
и так как мы делали операции с конца
в ответ тоже надо записывать эти операции с конца
12211
аналогично действуем со 2
Var n,s,i:integer;
begin
write('Введите число: ');
Readln(n);
s:=0;
for i:=1 to n do s:=s+i;
Writeln('s=',s);
<span>end.</span>
Не видно, если хочешь можешь удалить мой ответ, но я лично не вижу из-за темноты=(