Procedures (anyone using this 'live' needs to exectute this section to perform independent computations)
| > | with(numtheory):
# 00: PRFAC := proc(le, la, p, alpha) local r, k; r := le; for k from (le+1) to la do r := mods(r*k, p^alpha) od; r; end: # 01: PI := proc(n, M, i) local k, r; r := 1: for k from floor(((i-1)*(n-1)/M + 1)) to i*(n-1)/M do if igcd(n, k) = 1 then r := mods(r*k, n); fi; od; r; end: # 02: residues := proc(n, M) [seq(mods(op(i, factorset(n)), M), i = 1..nops(factorset(n)))] end: # 03: the_ones := proc(n, M) local L, p; L := []: for p in factorset(n) do if p mod M = 1 then L := [op(L), p] fi od; L; end: # 04: the_minus_ones := proc(n, M) local L, p; L := []: for p in factorset(n) do if mods(p, M) = -1 then L := [op(L), p] fi od; L; end: # 05: Pow := proc(n, p) local t, a; t := n: a := 0: while t mod p = 0 do t := t/p: a := a+1: od: a; end: a_sign := proc(p) local S2, a; S2 := op(sum2sqr(p)): if op(1, S2) mod 2 = 1 then a := op(1, S2) else a := op(2, S2) fi: if a mod 4 = 1 then a; else -a fi: end: |
| > |
| > |