Создан заказ №1504790
23 ноября 2016
Доработать программу. делфи 2007. с комментариями
Как заказчик описал требования к работе:
доработать программу, чтобы она раскладывала на множители нечётные числа больше 8
function NOD(C, N:integer):integer; // 1ая Функция нахождения наибольшего общего делителя
begin
If C0 then NOD:= NOD(N mod C,C) else NOD:= N;
end;
{ Если N является простым, функция вернет -1 }
function GetLehmanFact
or(N: Integer): Integer;
var
I,k,d,A, B,C, t, dd: Integer;
I1,k1,d1:real;
begin
Result := -1;
{ Проверка делителей до n^(1/3) }
I1:=trunc(Power(N,1/3));
for I := 2 to trunc(I1) do
if N mod I=0 then begin
Result := I;
exit;
end;
k1:=trunc(Power(N,1/3));
d1:=Round((Power(N,1/6)));
for k := 1 to Trunc(k1) do
for d := 0 to trunc((d1) / (4 * Sqrt(k))) + 1 do begin
A := round(Sqrt(4*k*N)) + d;
t := Sqr(A) - 4*k*N;
if t < 0 then
continue;
B := round(Sqrt(t));
if Sqr(B) = t then
begin
ASSERT((A-B)*(A+B)= 0 mod N); { Всегда выполняется }
C:=A-B;
dd :=NOD(N,C);
if (1 < dd) and (dd < N) then begin
Result:= dd;
exit;
end;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var N,n1:integer;
begin
N:=StrToInt(Trim(Edit1.Text));
if N>8 then
if ((N mod 2)=1) then begin
n1:=trunc(N/GetLehmanFactor(N));
Edit2.Text:=Edit2.Text+IntToStr(N)+'='+IntToStr(dd)+'*'+IntToStr(n1)
end
else ShowMessage('Введите натуральное нечётное число N > 8');
end
подробнее
Заказчик
заплатил
заплатил
200 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
Автор24
20 дней
Заказчик принял работу без использования гарантии
24 ноября 2016
Заказ завершен, заказчик получил финальный файл с работой
5
Доработать программу. делфи 2007. с комментариями.jpg
2017-01-10 22:43
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
Автор молодец! в целом все хорошо, если и были маленькие недочеты при проверке преподавателем, тут же все исправил, проблем не возникло. Спасибо большое, обязательно обращусь еще))