Pascal:Целочисленная арифметика — различия между версиями
Den (обсуждение | вклад) (Новая страница: « == Целочисленная арифметика(описание) == В данном разделе представлены описания и реализа…») |
Den (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
== Целочисленная арифметика(описание) == | == Целочисленная арифметика(описание) == | ||
Строка 27: | Строка 26: | ||
</pre> | </pre> | ||
− | == | + | == Наибольший общий делитель: == |
+ | |||
+ | <pre class="brush:pascal; gutter: false;"> | ||
+ | Function GCD(a,b:longint):longint; | ||
+ | var | ||
+ | x,y:longint; | ||
+ | begin | ||
+ | x:=a; | ||
+ | y:=b; | ||
+ | While x<>y do | ||
+ | if x>y then x:=x-y | ||
+ | else y:=y-x; | ||
+ | GCD:=x; | ||
+ | end; | ||
+ | </pre> | ||
+ | |||
+ | == Наименьшее общее кратное == | ||
<pre class="brush:pascal; gutter: false;"> | <pre class="brush:pascal; gutter: false;"> | ||
+ | program SCM; | ||
+ | |||
Function GCD(a,b:longint):longint; | Function GCD(a,b:longint):longint; | ||
var | var | ||
Строка 41: | Строка 58: | ||
GCD:=x; | GCD:=x; | ||
end; | end; | ||
+ | |||
+ | var | ||
+ | a,b:integer; | ||
+ | begin | ||
+ | Read(a,b); | ||
+ | WriteLn(f2,a*b div GCD(A,B)); | ||
+ | ReadLn; | ||
+ | end. | ||
</pre> | </pre> |
Версия 12:53, 21 февраля 2010
Содержание
[убрать]Целочисленная арифметика(описание)
В данном разделе представлены описания и реализация программ которые могут быть полезны в решении задач с целочисленной арифметикой.
Функция для определения принадлежности числа к простым:
Function Prime(n:longint):boolean; var p,i:longint; b:boolean; begin b:=true; if (n=1) or ((n>3) and (n mod 2=0)) then b:=false else begin p:=trunc(sqrt(n)); i:=3; While (i<=p) and b do begin b:=n mod i<>0; i:=i+2; end; end; Prime:=b; end;
Наибольший общий делитель:
Function GCD(a,b:longint):longint; var x,y:longint; begin x:=a; y:=b; While x<>y do if x>y then x:=x-y else y:=y-x; GCD:=x; end;
Наименьшее общее кратное
program SCM; Function GCD(a,b:longint):longint; var x,y:longint; begin x:=a; y:=b; While x<>y do if x>y then x:=x-y else y:=y-x; GCD:=x; end; var a,b:integer; begin Read(a,b); WriteLn(f2,a*b div GCD(A,B)); ReadLn; end.