34 lines
1.1 KiB
Text
34 lines
1.1 KiB
Text
To CopyPaste : =LAMBDA(a,n,[result],LET(s,IF(ISOMITTED(result),MOD(a,n),a),R,IF(ISOMITTED(result),EXPAND(1,COUNT(s),1,1),result),B,IF(s=0,HSTACK(s,n,R),IF(BITAND(s,1)=0,HSTACK(BITRSHIFT(s,1),n,IF(ABS(BITAND(n,7)-4)=1,-R,R)),HSTACK(MOD(n,s),s,IF(BITAND(s,3)+BITAND(n,3)-6=0,-R,R)))),new_a,INDEX(B,,1),new_n,INDEX(B,,2),new_result,INDEX(B,,3),IF(OR(new_a),Jacobi(new_a,new_n,new_result),IF(new_n=1,new_result,0))))
|
|
|
|
Easy-to-read display :
|
|
=LAMBDA(a,n,[result],
|
|
LET(
|
|
s, IF(ISOMITTED(result), MOD(a,n), a),
|
|
R, IF(ISOMITTED(result), EXPAND(1, COUNT(s), 1, 1), result),
|
|
B, IF(
|
|
s=0,
|
|
HSTACK(s,n,R),
|
|
IF(
|
|
BITAND(s,1)=0,
|
|
HSTACK(
|
|
BITRSHIFT(s,1),
|
|
n,
|
|
IF(ABS(BITAND(n,7)-4)=1,-R,R)
|
|
),
|
|
HSTACK(
|
|
MOD(n,s),
|
|
s,
|
|
IF(BITAND(s,3)+BITAND(n,3)-6=0,-R,R)
|
|
)
|
|
)
|
|
),
|
|
new_a, INDEX(B,,1),
|
|
new_n, INDEX(B,,2),
|
|
new_result, INDEX(B,,3),
|
|
IF(
|
|
OR(new_a),
|
|
Jacobi(new_a,new_n,new_result),
|
|
IF(new_n=1,new_result,0)
|
|
)
|
|
)
|
|
)
|