M7R0
I3HungarianAlgorithmy6%%9MinimalPathWithHungarianG%4LenghtOfMinimalPathG%+Brute
ForceG61%&Step1G%&Step2G%&Step3G%&Step4G%&Step5G%&Step6G%*StarInRowG%.FindStarI
nRowG%*FindAZeroG%.FindStarInColG%/FindPrimeInRowG%-augment_pathG%,ClearCoversG
%,ErasePrimesG%-FindSmallestG%t+6#%"AG6'%+temporaireG%%tempG%"SG%%stepG%"iG6"6"
C)>8(""!@$/-_%.LinearAlgebraG%-RowDimensionG6#9$"""O-_FK%/IdentityMatrixG6#FO>8
&-T%FM@$/FV%)infinityGOFV>FV-T'6$&FVFT&FV6#""#>FV-T)6'F[oF\o&FV6#""$&FV6#""%&FV
6#""&@%/-%%nopsG6#7#FVF^oOF[oC$>8'Fho?(FBFOFOFB0FepFF@$/FepFhoC%>FV-T+Fbo>Fep&F
V6#F^p@%/FepF[pC%>FV-T-6#-%$seqG6$&FV6#FE/FE;FO""(>FVF`o@%F]pOF[o>FepFhoC%>FV-T
/Fbo@$FZOFV>FepFhoFBFB60%6_thismoduledefinitionGFBF)%&Step1GF*%&Step2GF+%&Step3
GF,%&Step4GF-%&Step5GF.%&Step6G6#FO%*protectedGt+6$F:%"MG6&%"nGF>F@%"jG6"FBC(>8
$FI@$/9%FenOFat@$/F^tFOO&FNFT>8%FF?(FVFOFOF^t%%trueG?(FepFOFOF^tFjt@$/&Fat6$FVF
epFO>Fht,&FhtFO&FNF_uFOOFhtFBFB6$F\sFB6#F^oFdst+F96+FisF@%#S1G%#S2G%"lG%"NG%#ra
G%#VWGF=6"FBC(>F^tFI>FV-_%)combinatG%(permuteG6#F^t>Fep-_Fdv%'chooseG6$F^tF^t?(
FhtFOFO-F_p6#FepFjt>&8*6#Fht-%$minG6#-Fiq6$-%$addG6$&FN6$&&FepFbw6#%"kG&F^x6#&F
[rF_x/F`x;FOF^t/FE;FO-F_p6#FV>8,-Fdw6#-Fiq6$F`w/Fht;FOF]wOF[yFBFB6$F\sFB6#FOFds
1t+F96'F@%%miniGFjs%%TempGFis6"FBC'>FEFI>Fep-%'MatrixGF\r?(F^tFOFOFEFjtC$>&FhtF
fv-Fdw6#-%#opG6#-%(convertG6$&FN6$F^t;FOFE%$setG@$/FbzFenOFen?(F^tFOFOFEFjt?(FV
FOFOFEFjt>&Fep6$F^tFV,&&FNFf[lFOFbz!""O6%FepFEF^oFBFB6$F\sFB6#FOFBt+6$FhyFis6'F
@FjsFgs%)ColCoverG%)RowCoverG6"FBC(>FE7#-Fiq6$FF/F^t;FOFat>FepFf\l>FV-F^z6#Fat?
(F^tFOFOFatFjt?(FhtFOFOFatFjt@$33/&FN6$F^tFhtFF/&FEFfvFF/F^xFFC%>&FVFf]lFO>Fh]l
FO>F^xFO?(F^tFOFOFatFjtC$>&FepFfvFF>Fh]lFFO6(FNFatFVFEFepFeoFBFB6$F\sFB6#F^oFBt
+6'FhyFisFgsFb\lFa\l6&%)compteurGF@Fjs%,NewColCoverG6"FBC'>Fep9(?(FhtFOFOFatFjt
?(FVFOFOFatFjt@$/&9&6$FhtFVFO>&FepFixFO>F^tFF?(FhtFOFOFatFjt@$/F^xFO>F^t,&F^tFO
FOFO@%1FatF^tO6$Ff_lFFO6(FNFatFf_l9'FepFhoFBFB6$F\sFB6#F[pFBt+Fi^l6,%$colG%$row
GF=F\_l%%newMG%)pathrow0G%)pathcol0G%,NewRowCoverG%+ColRowZeroG%6ColOfZeroStarI
nTheRawG6"FBC+>8+Ff`l>FepF`_l>FEFf_l>FhtFi[l>F^tFi[l>FVFF>F[y-FX6&FNFatF`_lFf`l
@$/&F[yFTFi[lC$>FVFOO6(FNFatFf_lFf`lF`_l""'?(FBFOFOFB/FVFFC$>F[y-FX6&FNFatFepFf
al@%F`blC$>FVFOO6*FNFatFf_lFfalFep8)FawFfblC$>&FE6$Fabl&F[yF]oF^o@%/-Fin6%FatFa
blFf_lFOC%>8--Fao6%FatFablFE>&Ffal6#FablFO>&Fep6#F^dlFFC&>FVFO>FbclFabl>FawFgcl
O6*FNFatFEFfalFepFbclFawF[pFBFB6*F\sFBF1%*FindAZeroGF/%*StarInRowGF0%.FindStarI
nRowG6#F[pFBt+6)FhyFisF]alF`alF\_lF^alF_al6+F[alF\alF=%+path_countG%%pathG%5The
NewRowAndColCoverG%2ColFindPrimeInRowG%(ThenewMG%(TheNewMG6"FBC.>FE-F^z6#*$FatF
^o>F^tFi[l>FhtFi[l>FepFO>&FE6$FepFO9)>&FE6$FepF^o9*>FVFF?(FBFOFOFBFhblC%-FX6%Fa
tFiflFf_l@%0%1RowFindStarInColGFi[lC%>Fep,&FepFOFOFO>FeflFcgl>Fifl&FE6$,&FepFOF
i[lFOF^o>FVFO@$FhblC&>Faw-Fin6%FatFeflFf_l>FepFfgl>Fefl&FE6$F[hlFO>FiflFaw>Ffal
-Fao6%Ff_lFepFE>Fbcl-F]q6%F`_lFf`lFat>F[y-Ffq6$FatFfalO6(FNFatF[y&FbclFT&FbclF]
oFeoFBFB6.F\sFBF2%.FindStarInColGF3%/FindPrimeInRowGF4%-augment_pathGF5%,ClearC
oversGF6%,ErasePrimesG6#F_rFBt+Fi^l6'F@Fjs%'minvalG%(newTempG%*newminvalG6"FBC'
>FepFN>FV-%$maxG6#-Fiq6$-Fiq6$Fe]lFi\l/FhtFj\l>FE-FX6'FNFf`lF`_lFVFat?(F^tFOFOF
atFjt?(FhtFOFOFatFjtC$@$/&Ff`lFfvFO>&FepFf]l,&Ff[mFOFEFO@$/&F`_lFbwFF>Ff[m,&Ff[
mFOFEFi[lO6(FepFatFf_lFf`lF`_lFhoFBFB6&F\sFBF7%-FindSmallestG6#F[pFBt+6%FisF\al
Fgs6$F=F@6"FBC%>F^tFF?(FhtFOFOFNFjt@$/&Ff_l6$FatFhtFO>F^tFOOF^tFBFB6$F\sFB6#Feo
FBt+Fc\m6$F@%1ColFindStarInRowG6"FBC%>FhtFi[l?(F^tFOFOFNFjt@$/&Ff_l6$FatF^tFOC$
>FhtF^t[OFhtFBFB6$F\sFB6#FeoFBt+6&FhyFisF\_lF`al6'F@FjsF=F\alF[al6"FBC)>F^tFF>F
htFF>FepFi[l>FEFi[l>FVFF?(F^tFOFOFatFjt?(FhtFOFOFatFjtC$@$33Fd]l/Fd[mFF/&Ff_lFb
wFFC%>FepF^t>FEFht>FVFO@$0FVFF>F^tFatO6$FepFEFBFB6$F\sFB6#FhoFBt+6%FisF[alFgs6#
F@6"FBC$>FcglFi[l?(F^tFOFOFNFjt@$/&Ff_l6$F^tFatFO>FcglF^tFB6#Fcgl6$F\sFB6#FeoFB
t+6%FisF\alF]al6$F@Fhel6"FBC%>FhtFi[l?(F^tFOFOFNFjt@$/Fj]mF^o>FhtF^tOFhtFBFB6$F
\sFB6#FeoFBt+6%F]alFeelFfel6$F@%(newnewMG6"FBC%>FhtFN?(F^tFOFOFatFjt@%/&Fht6$&F
f_l6$F^tFO&Ff_l6$F^tF^oFO>FfbmFF>FfbmFOOFhtFBFB6$F\sFB6#FeoFBt+6%Fa\lFb\lFis6%F
@F\_lF`al6"FBC&>FhtFN>FVFat?(F^tFOFOFf_lFjtC$>&FVFfvFF>FbzFFO6$FVFhtFBFB6$F\sFB
6#FeoFBt+6$FisF_bm6%F@Fjs%(NewNewMG6"FBC%>FVFat?(F^tFOFOFNFjt?(FhtFOFOFNFjt@$/F
\^lF^o>F\^lFFOFVFBFB6$F\sFB6#F^oFBt+6'FhyFb\lFa\lF]jlFis6%F@FjsF_jl6"FBC&>FVFf`
l?(F^tFOFOF`_lFjt?(FhtFOFOF`_lFjt@$3/&FatFfvFFFc_m@$2Fe]lFV>FVFe]l@$FZOFenOFVFB
FB6$F\sFB6#F[pFBb6#%+thismoduleGF(6#%(packageGF$FBFBFBFBFBFB
