Category : BASIC Source Code
Archive   : UBAS830.ZIP
Filename : POLFACT.UB

 
Output of file : POLFACT.UB contained in archive : UBAS830.ZIP

˜J
POLFACT VER 2.02
"˜
P˜ Polynomial Factorization in Z and Q
Y(˜
¢2˜ reference:D.E.Knuth The Art of Computer Programming, Chapter 4
«<˜
³F€¨
ºP™
áZ™" * polynomial factorization *"
d™" * use x or X for a variable *"
2n™" * example : x^3+2*x^2+3*x+4 *"À™
Ex±"f(x)="Á…W
[‚ú
€Â…W)ÔñŽ¿
hŒ…U0Ñ""
–IѲ…WÂ"xX")
Å dIŽ…U0Ýр¼…WIÞñ)Ý"_X"À…Wр»…WIÝñÂå)À‡ñ–
ܪ…U0рý…U0݅W)
ñ´™À™"f(X)="Á…U0
1¶ƒDenÑñÀ‰ƒIÑðŠ²Û…U0)ÀƒDenѲãƒDen²ŀÿ…U0ƒI)))ÀŒ
B¸…U0åуDen
a¾…XѳõPolFact˜ô(…U0Âð)
„Àþ…XÂñ)рþ…XÂñ)éƒDen
£È™Àˆõ PrintPolyžõ(&…X)À™
­Ò‡ñx
¶Ü˜
Ðæõ PrintPoly(&…X)
àðºI…W
ú€þ…XÂñ)ÖñŽ™€þ…XÂñ)Á"* "Á
&‰IÑñŠ€Â…X)‹ñ
H…WÑ"("݀ü€þ…XI))Ý")"
Œ+€þ…XIÝñ)ÒñŽ…WÝÑ"^"݀»€ü€þ…XIÝñ))ÂñÂå)
±"PIԀ…X)ÞñŽ…WÝÑ" * "
Ð,²ÆŽo²Æ݀…W)ÒñOŽ™
Ü6™…WÁ
å@ŒÀ™
ìJ•
õT˜
^³õPolFact(…U0Talksw)
9hºIGoodDegDegѲۅU0)
’rºƒPƒP1ƒPaƒPbƒRƒR1ƒGoodRƒHeightƒCfactorƒ Gcdfactorƒ Powerfactor
¯|º…G…X…Ans…Umem
Ɔºƒ
LimitwordsÑñ
à˜… get const factor
òš…GѲޅU0)
¤…U0ѳõ Primitiveö(…U0)
(®ƒCfactorѲޅU0)
H¸ƒ GcdfactorхGèƒCfactor
`˜ÿ get power of X
ũ PowerfactorÑð
‡ÖL²ß…U0)Ñð
¤à ƒ PowerfactorÀ…U0èÑ_X
­ê‘
Þô}…U0рûñ)Ž…Umemрûñ)À…Ansр½)À‡ñ¢
øþ˜— get multi factor
…Umemрûñ)
I…Gѳõ Primitiveö(²Ý³õGcdFô(…U0²܅U0)))åƒCfactor)
v²Û…G)Ž…UmemåхGÀ…U0èхGÀ‡ñ
&ƒCfactorѲޅU0)
–0˜5
Ç:f³õ
EisensteinUö(…U0)Ž…Ansр½…U0)À‡ñ¢
öD‰IÑðŠDegÀƒHeightÝрÀ€ÿ…U0I))ÀŒ
NƒHeightÝрÀ²Þ…U0))
?XƒPaрÞñ
݀à€ÌƒHeight)ïñÂñ')݀²çñ2)
ibƒPaрރPa)ÀƒCfactorçƒPaÑðŽñb
xlƒPbуPa
¢vƒPbрރPb)ÀAƒCfactorçƒPbÑðŽñv
±€ƒPуPb
ÛŠƒPрރP)ÀzƒCfactorçƒPÑðŽñŠ
”GoodDegѳõGoodDegÌô(ƒPƒHeight)
žƒGoodRсDegèñ
?¨ƒRѳõBadnessõ(…U0ƒP)
O²ƒRÔðŽ
€¼ÀƒPрރP)ÀƒCfactorçƒPÑðŽñ¼ñ¨
°ÆOTalkswŽ™"For p="ÁƒPÁ"Badness="ÁƒR
ÔЍsƒRÑñŽ…Ansр½…U0)À‡ñ¢
ñڍƒRՃGoodRèñŽñp
äƒP1уP
 IÑñŠ²Û…U0)èñ
Ýñ
1 øƒP1рރP1)
S ƒR1ѳõBadnessõ(…U0ƒP1)
c 3ƒR1ÔðŽ
” ÀƒP1рރP1)ÀƒCfactorçƒP1ÑðŽññ
Ä cTalkswŽ™"For p="ÁƒP1Á"Badness="ÁƒR1
ë *ŠƒR1ÑñŽ”‰À…Ansр½…U0)À‡ñ¢
þ 4ÓƒR1҃RŽ
4
>ÀƒPaԃPŽƒPaуP1¯°ƒPbԃPŽƒPbуP1
Z
HƒR1ՃRŽƒPуP1ÀƒRуR1
w
RƒRԃGoodRŽ”‰À‡ñp
~
\Œ
‡
f˜&
¬
pKTalkswŽ™"Use modulus"ÁƒP
Ï
z…XѳõPolfact3iõ(…U0ƒP)
ö
„…Ansѳõ PolFactMain¤ö(…U0…X)
 Žˆõ
SortResult‰ö(&…Ans)
 ˜˜»
I ¢…Xр½ƒ Gcdfactor)À˜set const factor
a ¬˜ set power of X
‘ ¶0ƒ PowerfactorŽ…XÝр½_Xƒ Powerfactor)
© À‰IÑñŠ€Â…Ans)
É Ê…XÝр½€þ…AnsI)Âñ)
РԌ
î ލ…Umemрûñ)Ž•(…X)
è˜set multiple factors
& ò‰IÑñŠ€Â…X)‹ñ
F ü…Wрþ…XI)ÀJÑñ
Z …WÑ_XŽñ$
ˆ …Umemç…WÑðŽ…UmemèхWÀ JÀ‡ñ
£ €þ…XIÝñ)сJ
Ä $…Umemрûñ)Ž”‰À•(…X)
Ë .Œ
ä 8™"system error"À–À¿
í B˜
ö L˜

V³õ PolFactMain(…U0…X)
W
`ºIJDegRaisedsw UsedGoodDegƒPeƒRƒNewR
£
jº…A…B…G…H…Sw…U1…U2…V…W…W1…Y…Z…Ansр½)
Ã
t¤†V€Â…X))†V1€Â…X))
ñ
~˜– use global GoodDeg%,P,Height,Cfactor
ˆ‰IÑñŠ€Â…X)
&’…Wрþ…XI)À…VÑð
Mœ‰JÑðŠ²Û…W)À…Zрÿ…WJ)
n¦
…Z҃PèñŽ…ZÞуP
…°€ÿ…VJ)хZ
ŒºŒ
›Ä…WхV
¹Î…VхVåƒCfactorçƒP
Ù؈õ ReductionÒõ(&…VƒP)
øâ…Vѳõ Primitiveö(…V)
=썳õTry,ô(…V)Ž…U0èхVÀ…AnsÝхVÀƒCfactorѲޅU0)À‡ñ
Wö†VƒR)хWÀ ƒR
^Œ
v
ƒRÑðŽ•(…Ans)
•ƒRÑñŽ•(…Ans݅U0)
³ˆõ
RecalcGoodDegÊö(ƒP)
¼(˜
Ð2˜ check main
Ù<˜
"FƒPeуPÀƒPe1уPeåƒPÀ²Û†Vð))ÒñåGoodDegŽõ
CheckEisena
4PõLoopforP
BZ…SwÑñ
Kd’
inDegÑðÀ‰IÑðŠƒRÞñ
’x€ÃI…Sw)ŽDegÝѲۆVI))
™‚Œ
¹ŒDegՁ UsedGoodDegŽ¶
薍DegҀàGoodDegåñ²ۅU0)èñ)Ž¶
ü …VуCfactor
ª‰IÑðŠƒRÞñ
C´€ÃI…Sw)Ž…VхVå²ß†VI))çƒPe
J¾Œ
kȍ…V҃PeèñŽ…VÞуPe
Ò…VèрąVƒCfactorçƒPe)
¦Ü²ß…U0)ç…VŽ¶
½æ…VрûƒCfactor)
Óð‰IÑðŠƒRÞñ
ú€ÃI…Sw)Ž…VхVå†VI)çƒPe
Œ
(ˆõ ReductionÂõ(&…VƒPe)
G…Vѳõ Primitiveöõ(…V)
i"³õTryô(…V)ŽõResetVK(
v,·À …Sw
6“…SwÓñïƒRÞñ
¼@²Û…U0)ÕñåGoodDegŽ•(…Ans݅U0)
÷J(²Û…U0)޲ۆVƒRÞñ)))ՁGoodDegŽ•(…Ans݅U0)
T UsedGoodDegсGoodDeg
(^õ
CheckEisen
Th³õ
EisensteinEö(…U0)Ž•(…Ans݅U0)
]r˜
w|˜ for higher power
€†˜
”RaisedswÑñ
Øš…Gрûñ)À‰JÑðŠƒRÞñ‹ñÀ…GѲà…G†VJ)ƒPe)ÀŒ
ø¤ˆõ ReductionÂõ(&…GƒPe)
>®…Hрûñ)À‰JÑñŠƒRÞñ‹ñÀ…HѲà…H†VJ)ƒPe)ÀŒ
^¸ˆõ ReductionÂõ(&…HƒPe)
¨ÂƒGHwordsÑ(²Û…G)ݲۅH)Ýñ)å((€ÂƒCfactor)݀ƒPe)Ýñ)èñ)Ýñ
Ë̘if GHwords>Limitwords then
Ö˜ :if Raisedsw%>1 then *LoopforP:else return(0):'giveup
಑уP
6ê…Vѳõ TransPolyÜõ(…G)
Uô…Wѳõ TransPolyÜõ(…H)
}þ…Aѳõ
ModpolyModInväö(…V…W)
¥…Bѳõ
ModpolyModInväö(…W…V)
ɍñåƒGHwordsՃ
LimitwordsŽ
À…W1ѳõ TransPolyÜõ((…U0ރCfactorå…Gå…H)èƒPe)æƒCfactor
6&À…W1ѳõ Henselsub¨õ(…G…H)
c0…XхW1å…Bç…VÀ…YхW1å…Aç…W
m:²‘Ñð
–D…U1ѳõ TransPolyÜõ(…X)åƒPe݅G
¿N…U2ѳõ TransPolyÜõ(…Y)åƒPe݅H
àXˆõ ReductionÂõ(&…U1ƒPe1)
bˆõ ReductionÂõ(&…U2ƒPe1)
l˜
,vƒRÑñŽ†V1ð)хU1À‡ñ 
F€‰IÑðŠƒRÞñ‹ñ
fŠ…GцVI)À…Hрûñ)
©”‰JÑðŠƒRÞñ‹ñÀJցIŽ…HѲà…H†VJ)ƒPe)
°žŒ
Шˆõ ReductionÂõ(&…HƒPe)
ݲ²‘уP
ü¼…Vѳõ TransPolyÜõ(…G)
Æ…Wѳõ TransPolyÜõ(…H)
CÐ…Bѳõ
ModpolyModInväö(…W…V)
†Ú…Xѳõ TransPolyÜõ((…U1Þ²à…G…HƒPe1))èƒPe)å…Bç…V
ä²‘Ñð
¾î…Xѳõ TransPolyÜõ(…X)åƒPe݆VI)
ßøˆõ ReductionÂõ(&…XƒPe1)
ó†V1I)хX
ú Œ
˜
' ƒRÕñŽ†V1ñ)хU2À‡ñÀ
C*‰IÑñŠƒRÞñ‹ñ
c4…GцVI)À…Hрûñ)
¨>‰JÑñŠƒRÞñ‹ñÀJցIŽ…HѲà…H†VJ)ƒPe)
¯HŒ
ÏRˆõ ReductionÂõ(&…HƒPe)
Ü\²‘уP
ûf…Vѳõ TransPolyÜõ(…G)
p…Wѳõ TransPolyÜõ(…H)
Bz…Bѳõ
ModpolyModInväö(…W…V)
…„…Xѳõ TransPolyÜõ((…U2Þ²à…G…HƒPe1))èƒPe)å…Bç…V
Ž²‘Ñð
½˜…Xѳõ TransPolyÜõ(…X)åƒPe݆VI)
Þ¢ˆõ ReductionÂõ(&…XƒPe1)
ò¬†V1I)хX
ù¶Œ
À¢†VðÃRÞñ)Ñ¢†V1ðÃRÞñ)
bʃPeåуPÀƒPe1åуPÀGoodDegѳõGoodDeg¼ô(ƒPeƒHeight)
|ԍTalkswŽ™€Óñ)Á
½ÞÀ™€Óñ
)Á"Use modulus"ÁƒPeÁ"valid for degree <="ÁGoodDeg
×荁GoodDegÕñŽñ
òRaisedswÑñŽ RaisedswÀ‡ñšõLoopforPX
ü˜
' õResetV
j …U0èхVÀ…AnsÝхVÀƒCfactorѲޅU0)À…U0ÑñŽ•(…Ans)
ˆ ˆõ
RecalcGoodDegÊö(ƒPe)
¢$ TalkswŽ™€Óñ)Á
ã. À™€Óñ
)Á"Use modulus"ÁƒPeÁ"valid for degree <="ÁGoodDeg
ñ8 ƒNewRÑð
B ‰IÑðŠƒRÞñ
<L €ÃI…Sw)ÑðŽ†VƒNewR)цVI)À ƒNewR
CV Œ
T` ƒRуNewR
‚j ƒRÑñŽ•(…Ans݅U0)õLoopforPX
‹t ˜
¼~ ³õPolymod(…X…Y)À˜Y# must be monic
Lj ºI
ç’ ‰IѲۅX)Š²Û…Y)‹Þñ
(œ …XÑ(…Xހÿ…XI)å…Yå_Xï(I޲ۅY)))ç(ƒPeåƒP)
/¦ Œ
<° •(…X)
Eº ˜
dÄ ³õ Henselsub(…G…H)
†Î ºIK…V…WƒCfinv
¥Ø ƒCfinvрۃCfactorƒP)
Éâ ‰KÑðŠ²Û…G)ݲۅH)À…WÑð
öì ‰Iр߁K޲ۅH)Âð)Š€à²Û…G)K)
&ö …WÝрÿ…GI)å€ÿ…HKށI)çƒPe1
-

p

€ÿ…VK)Ñ(€ÿ…U0K)ރCfactorå…WçƒPe1)èƒPeåƒCfinv
w

„
•(…V)
(

®2
³õGoodDeg(ƒPƒHeight)
¼<
ºDegÑð
éF
,ƒPÒñåƒHeight倸DegDegèñ)
õP
 Deg
þZ
‘b,
d
•(Deg)
 n

2 x

RecalcGoodDeg(ƒP)
B ‚
ºI…W
o Œ
‰IÑðŠ²Û…U0)À…WÝрÀ€ÿ…U0I))ÀŒ
… –
…WÝрÀ²Þ…U0))
  
…W҃HeightŽ•
Ø ª
ƒHeightхWÀGoodDegѳõGoodDeg¼ô(ƒPƒHeight)À•
á ´

õ ¾
³õTry(…V)

ºI…WU…WV
'!Ò
Æ-²ß…U0)ç²ß…V)Ž•(ð)
D!Ü
ã-²Þ…U0)ç²Þ…V)Ž•(ð)
Q!æ
²‘уPa
Š!ð
…WUѳõ TransPolyìõ(…U0)À…WVѳõ TransPolyìõ(…V)
¦!ú
E.…WUç…WVŽ²‘ÑðÀ•(ð)
³! ²‘уPb
ì! …WUѳõ TransPolyìõ(…U0)À…WVѳõ TransPolyìõ(…V)
" §.…WUç…WVŽ²‘ÑðÀ•(ð)
"" ²‘Ñð
)", È.…U0ç…VŽ•(ð)
5"6 •(ñ)
>"@ ˜
]"J õ Reduction(&…WƒP)
m"T ºI…Z
‚"^ ‰IÑðŠ²Û…W)
º"h …Zрÿ…WI)çƒPÀY/…Z҃PèñŽ…ZÞуP
Ñ"r €ÿ…WI)хZ
Ø"| Œ
ß"† •
è" ˜
#š ³õ TransPoly(…X)
#¤ ºI…W
'#® ‰IÑðŠ²Û…X)
F#¸ €ÿ…WI)рÿ…XI)
M# Œ
Z#Ì •(…W)
c#Ö ˜
~#à ³õ
Eisenstein(…X)
³#ê ºIJXƒPƒX…W…ZƒModmemѲ‘
ã#ô ‰IÑðŠñÀXÑ(IÝñ)èñÀ‚0£Ž´X
$þ ƒXсXÀ…WрÀ€ý€ü…X)))
$ »0…WÑðŽ”‰À‡ñÆ
1$ Ð0…WÑñŽñ¼
c$ ƒPрхW)À1€èþ0ƒPÒñïñƒPÑð}Žñ¼
~$& 1²Þ…X)çƒPÑðŽñ:
Ÿ$0 …WèуPÀ>1…WçƒPŽñD
Æ$: …WèуPÀ…WçƒPŽñ ñ:
Ó$D ²‘уP
ò$N …Zѳõ Transpolyìõ(…X)
%X ƒXсXÝ_XÀ…Zрý€ü…Z))
/%b ‰JÑñŠ²Û…Z)Þñ
L%l €ÿ…ZJ)Ž”‰À‡ñ¼
S%v Œ
€%€ TalkswŽ™"primarity by Eisenstein"Á
 %Š ÀXŽ™" after X -> X"Á
º%” ÀXÔðŽ™€üX)Á
Û%ž À™"+"Á€»€üX)ÂñÂå)Á—
õ%¨ À™" with prime"ÁƒP
&² ”‰À²‘уModmemÀ•(ñ)
&¼ Œ
-&Æ ²‘уModmemÀ•(ð)
6&Ð ˜
O&Ú ³õGcd(…X…Y)
i&ä ºƒP…G…W…Z
&î ƒPрÎñˆ݀²çñè)
Ž&ø ²‘уP
Ç&
…Wѳõ TransPolyìõ(…X)À…Zѳõ TransPolyìõ(…Y)
'
¥3€è“3²Û…W)ԲۅX)²ۅZ)ԲۅY)}ŽƒPрރP)À‡ñø
/'
²Û€Ä…W…Z))ÑðŽ²‘ÑðÀ•(€ûñ))
9'
²‘Ñð
r'*
…Xѳõ Primitive(…X)À…Yѳõ Primitive(…Y)
‰'4
…XÑðŽ•(…Y)
 '>
…YÑðŽ•(…X)
Ã'H
²Û…X)ԲۅY)Ž¥…X…Y
â'R
…WѲޅX)À…ZѲޅY)
(\
…GрąW…Z)À…WèхGÀ…ZèхG
+(f
…WÖñŽ…YåхW
G(p
…ZÖñŽ…XåхZ
l(z
…XÞхYå_Xï(²Û…X)޲ۅY))
“(„
…XŽ…Xѳõ Primitive(…X)
ž(Ž
À‡ñH

»(˜
•(³õ Primitive(…Y))
Ä(¢

Þ(¬
³õ Primitive(…X)
î(¶
ºI…G
)À
‰IÑðŠ²Û…X)
6)Ê
…GрąG€ÿ…XI))ÀÕ5…GÑñŽ”‰À‡ñÞ

=)Ô

U)Þ
ô5²Þ…X)ÔðŽ´…G
n)è

6…GÑñŽ•(…X)
€)ò
•(…Xè…G)
‰)ü

’)˜
°)³õPolfact3(…U0ƒP)
â)ºIDegѲۅU0)…U…X…Z…Ansр½)
ó)$¤†ZDeg)
*.²‘уP
*8…Xр۲ޅU0)ƒP)
S*B‰IÑðŠDegÀ€ÿ…UI)рÿ…U0I)å…XçƒPÀŒ
u*L7²Û…U)ԁDegŽ²‘ÑðÀ•(€½))
¢*VˆõRemoveMultiFactor÷˜A7U# -> U# * MF#
Ä*`c7²Û…U)ԁDegŽ²‘ÑðÀ•(€½))
Í*j˜¤7
ü*t˜get product of factors for each degree
+~˜
+ˆˆõMakeZPZ4õ
&+’DegÑñ
:+ϛ
DegreeLoop
T+¦…XѲ݀ąU…Z))
‚+°²Û…X)Ž…AnsÝѳõ IrredFactor¾ö(…X)
“+ºÀ…UèхX
µ+č²Û…U)ÕñåDegÝñŽñö
È+ΈõRaiseZPZsõ
Ô+Ø Deg
é+â‡õ
DegreeLoop^7
ò+ì˜
,ö­8²Û…U)Ž…AnsÝхU
+,ˆõ
SortResult‰ö(&…Ans)
5,
²‘Ñð
C,•(…Ans)
L,˜
p,(˜ power of polynomial mod U#
y,2˜
˜,<³õ PolyPower(…Z…E)
¨,FºI…W
Á,P`9…EÑðŽ•(€ûñ))
Ð,Z…WхZ
î,d‰Iр…E)ÞñŠð‹Þñ
-n…WхWïñç…U
/-xÎ9€ÃI…E)Ž…WхWå…Zç…U
6-‚Œ
C-Œ•(…W)
L-–˜
m- ˜ remove multiple factors
v-ª˜
‘-´õRemoveMultiFactor
«-¾ºI…DU…W…G
º-È…MFхU
Ý-Ò…DUѲ܅U)À|:²Û…DU)ÑðŽ¶
.܍¶:…DUÑðŽ…WхUÀ…UÑñÀ‡ñ6À˜p-th power poly
1.æ…GѲ݀ąU…DU))
V.ð²Û…G)ÑðŽ¶<À˜no multiple
t.úÀ…UèхGÀ…WхG
˜.’À˜extract p-th power part
².…GѲ݀ąU…W))
Â.…WèхG
Ô."“²Û…G)Ñð
û.,²Û…W)ÕðŽ¶À˜no p-th power
=/6…GÑðÀ‰IÑðŠ²Û…W)èƒPÀ€ÿ…GI)рÿ…WIåƒP)ÀŒ
c/@…UåхGÀ˜restore 1-st power
m/J‡ñÒ
t/T·
„/^…MFèхU
‹/h•
”/r˜
µ/|˜ Get Irreducible Factors
Ú/†˜ find factors of Deg% degree
ã/˜
ÿ/š³õ IrredFactor(…F)
10¤ºI…G…U…PowNeg…W…Z…Ansр½)
R0®ñ<²Û…F)сDegŽ•(€½…F))
a0¸…UхF
t0Â…Tmpр½…F)
}0Ì’ÿÿ
£0Ö…WѳõRndPolyæô(ñåDegÞñ)
É0à…WѳõWPD`ô(…WDeg)݀ûñ)
Ú0ê…Uрûñ)
ò0ô‰IÑñŠ€Â…Tmp)
1þ…Fрþ…TmpI)
1¼=…FÑðŽñX
71…GѲ݀ąF…W))
_1§>€çý=ðԲۅG)²ۅG)ԲۅF)}Ž
p1& À…FèхG
¨10 À²Û…F)сDegŽ…AnsÝхFÀ…FÑðG>…UåхF—
Á1: À€þ…TmpI)хF
þ1D À²Û…G)сDegŽ…AnsÝхG>…TmpÝхGÀ…UåхG—
2NÀ±>…UåхF
2XŒ
-2b“=…Uрûñ)
;2l•(…Ans)
D2v˜
]2€³õRndPoly(Deg)
h2Šº…W
†2”DegÑñ݀܀êå€êåDeg)
™2ž‰IÑðŠDeg
¶2¨€ÿ…WI)р܀êåƒP)
½2²Œ
Ê2¼•(…W)
Ó2Ƙ
î2Ðõ
SortResult(&…X)
3ÚºIJPtr…W…W1…W2
+3ä…WхXÀ…Xр½)
F3IÑñŠ€Â…W)Þñ
h3øPtrсIÀ…W1рþ…WI)
„3‰JсIÝñŠ€Â…W)
›3 …W2рþ…WJ)
Ô3s@³õPolycmpõ(&…W1Â&…W2)ÒðŽPtrсJÀ…W1хW2
Û3 Œ
4*…XÝхW1À½@PtrցIŽ…W1рþ…WI)À€þ…WPtr)хW1
%44Œ
@4>…XÝрþ…W€…W))
G4H•
P4R˜
o4\³õPolyCmp(&…W1Â&…W2)
z4fºI
™4p8A²Û…W1)ҲۅW2)Ž•(ñ)
¹4zXA²Û…W1)ԲۅW2)Ž•(Þñ)
Ó4„‰IѲۅW1)Šð‹Þñ
5Ž¤A€À€ÿ…W1I))ҀÀ€ÿ…W2I))Ž”‰À•(ñ)
85˜×A€À€ÿ…W1I))ԀÀ€ÿ…W2I))Ž”‰À•(Þñ)
d5¢B€ÿ…W1I)Ҁÿ…W2I)Ž”‰À•(ñ)
‘5¬0B€ÿ…W1I)Ԁÿ…W2I)Ž”‰À•(Þñ)
˜5¶Œ
¢5À•(ð)
«5ʘ
Ç5ÔõBadness(…U0ƒP)
ñ5ÞºIDeg…DU…G…UƒBadness
6褆Z²Û…U0))
6ò²‘уP
G6ü‰IÑðŠ²Û…U0)À€ÿ…UI)рÿ…U0I)çƒPÀŒ
g6C²Û…U)ԲۅU0)Ž•(Þñ)
p6˜C
“6…DUѲ܅U)À2C²Û…DU)ÑðŽñL
ª6$IC…DUÑðŽ•(Þñ)
Á6.…GрąU…DU)
Ù68xC²Û…G)Ž•(Þñ)
â6B˜C
ô6LˆõMakeZPZ4õ
7VDegÑñ
7`˜«C
#7j…GрąU…Z)
>7t²Û…G)Ž…UèхG
g7~‰IÑñŠ²Û…U)À†ZI)çхUÀŒ
ª7ˆÀ+D²Û…G)сDegŽ ƒBadnessƒBadnessÝÑ(²Û…G)èDeg)ïñ
Ï7’D²Û…U)ÒñåDegÝñŽ Deg
ã7œÀˆõRaiseZPZsõ
î7¦À‡ñj
8°¨D²Û…U)Ž ƒBadness
8º²‘Ñð
%8Ä•(ƒBadness)
.8Θ
\8ؘ polynomial inverse modulo polynomial
|8☠A#=fnPolyModInv(X#,Y#)
›8ì˜ B#=(poly(1)-A#*X#)\Y#
¶8ö˜ print A#*X#+B#*Y#
Û8˜ must set modulus in advance
þ8
³õ
ModpolyModInv(…X…Y)
9º…R…Q…A…A1…W
O9€è…XÑð…YÑð}Ž™"illegal parameter"À–
g9(…Aрûñ)À…A1Ñð
p92’
Ÿ9<…QхXè…YÀ…RÑ£À…XхYÀ…YхR
Ì9F…WхA1À…A1хAޅQå…WÀ…AхW
Û9P“…RÑð
þ9Z²Û…X)ÖðŽ™"not coprime"À–
:d…AèхX
:n•(…A)
$:x˜
8:‚˜ MAKE Z^P-Z
A:Œ˜
R:–õMakeZPZ
b: ºI…W
‰:ª(G²Û…U)҃PŽ…ZÑ_XïƒPÀ‡ñð
¨:´…WрûðÂñ)À…Zрûñ)
Á:¾‰IÑðŠ€ÂƒP)Þñ
ê:ȍ‰G€ÃIƒP)Ž…ZхZå…Wç…U
;Ò…WхWïñç…U
;܌
";æ…ZхZå…Wç…U
?;ð…WхZÀ†Zñ)хZ
{;ú‰IÑñŠ²Û…U)À…WхWå…Zç…UÀ†ZI)хWÀŒ
š;…ZÑ(…ZހûðÂñ))ç…U
¡;•
ª;˜
Ä;"˜ MAKE Z^(P^deg)-Z
Í;,˜
ß;6õRaiseZPZ
ï;@ºI…W
  R<^‰IÑñŠ²Û…W)À…ZÝцZI)å€ÿ…WI)ÀŒ
q x <|˜
¡<†˜ MAKE W#^((P^deg%-1)\2)
ª<˜
Ä<š³õWPD(…WDeg)
Þ<¤ºIJ…V…X
=®…Wѳõ PolyPower ö(…WÂ(ƒPÞñ)èñ)
=¸…VхW
4=‰IÑñŠDegÞñ
I=Ì…Xрû²ß…V))
=Ö‰JÑñŠ²Û…V)À…XÝцZJ)å€ÿ…VJ)ÀŒ
Ž=à…VхX
§=ê…WхWå…Vç…U
®=ôŒ
»=þ•(…W)


  3 Responses to “Category : BASIC Source Code
Archive   : UBAS830.ZIP
Filename : POLFACT.UB

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/