1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
unit pbigint;
{operations usuelles sur des entiers pouvant atteindre 300 chiffres:bigint
Unité developpée par KPIZINGUI DARRYL
24 novembre 2007}
interface
const maxbig=200;
basemax=200;
type bigint=record
t:array[1..maxbig] of -1..9;
s:shortint;
end;
tbase=array[1..basemax] of bigint;
tbasel=array[1..basemax] of integer;
{----------------------------------------------}
procedure init(var b:bigint); {initialise a
0}
procedure breadln(var a:bigint);{lecture au clavier}
procedure bwriteln(a:bigint);{ecriture sur stdout}
function comp(a,b:bigint):integer; {compare a et b:0 si a=b;1 si b<a;-1 sinon}
procedure plus(a,b:bigint;var c:bigint); {addition comme on le fait au primaire}
procedure moins(a,b:bigint;var c:bigint); {soustraction}
procedure div2(a:bigint;var q:bigint);{division par 2}
procedure mult2(a:bigint;var c:bigint); {multiplication par 2}
procedure conv(a:longint;var c:bigint); {convertit un longint en bigint}
procedure prod(x,y:bigint;var c:bigint);{multiplication comme on le fait au primaire}
procedure babs(a:bigint;var c:bigint); {valeur absolue}
procedure bdiv(a,b:bigint;var c:bigint);{division entiere}
procedure bmod(a,b:bigint;var c:bigint);{reste d' une division euclidienne}
procedure prodmod(x,y,t:bigint;var c:bigint);{multiplication modulo n}
procedure brandom(n:integer;var c:bigint);{rend un nombre au hazard de n chiffres}
procedure expo(x,n:bigint;var c:bigint);{elevation a la puissance n}
function premier(a:bigint):boolean;{determine si un nombre est premier}
procedure euclide(a,b:bigint;var u1,v1,c:bigint);{algorithme d' euclide etendu; c est le reste}
procedure expomod(a,n,b:bigint;var c:bigint); {puissance modulo}
procedure bfwriteln(var f:text;a:bigint);{ecriture de a dans le fichier f}
procedure bfreadln(var f:text;var a:bigint);{lecture d' un bigint dans le fihier f}
procedure tobasex(a,b:bigint;var t:tbase);{conversion de a en base b}
procedure tobase10(t:tbasel;b:bigint;var c:bigint);{conversion en base b}
function bigtolong(a:bigint):longint;{convertit un bigint en longint}
type str100=string[20]; |
Partager