Rev 9901 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
!if $wims_read_parm!=slib_header
!goto proc
!endif
slib_author=Bernadette, Perrin-Riou
slib_example=[5,4,2]
!exit
:proc
!distribute items $wims_read_parm into slib_partition
slib_partition=!declosing $slib_partition
slib_partition=!sort reverse numeric item $slib_partition
slib_out=!exec pari p=[$slib_partition]; n=sum(i=1,#p,p[i]);\
L=listcreate(n); test=0;\
for( a=1, #p,\
if(a<#p && p[a+1]>1, listput(L,p[a]), listput(L, p[a]-1);\
test=1; N=#p-a+1; s=divrem(N,p[a]-1)~;\
for(j=1, s[1], listput(L,p[a]-1));\
if(s[2]!=0, listput(L,s[2])); return(Vec(L)); break)\
)