![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Написал программу нахождения общего кратного.
Что нужно добавить чтобы находил НАИМЕНЬШЕЕ общее кратное. Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var p, n1, m1, n, m, R, a: LongWord; begin n:= StrToInt(edit1.text); m:= StrToInt(edit2.Text); if (n = 0) or (m = 0) then R:= 0 else begin if m < n then begin n1 := m; m1 := n; end else begin n1 := n; m1 := m; end; while n1 > 0 do begin p := m1 mod n1; m1 := n1; n1 := p; end; R := m1; a :=n*m div R; Edit3.text:=IntToStr(a); end; end; end. |
#2
|
||||
|
||||
![]() а у тебя разве не Н.О.К. находит ?
(наименьше число, которое без остатка делится на эти оба числа) ![]() Последний раз редактировалось eXplorer, 25.10.2011 в 14:17. |
#3
|
||||
|
||||
![]() Вот ссылка http://lectureroom.net/324.html на функцию поиска НОК.
|
#4
|
|||
|
|||
![]() а вот самый примитивный способ решения
те путем простого перебора от MAX(z1,z2) до (z1*z2) Код:
function GetMOK(z1,z2:cardinal):cardinal; begin Result:=Max(z1,z2); while (Result mod z1 <>0) or (Result mod Z2 <>0) do inc(Result); end; |