CLEAR DIMENSION aX[1] * FOR k=10 TO 10 * FOR j=1 TO m.k * =splitNumberMin(m.k,m.j,@aX) * ? m.k,m.j,' ',arrayToString(@aX) * NEXT * NEXT * ? "Max" FOR k=10 TO 10 FOR j=1 TO m.k =splitNumberMax(m.k,m.j,@aX) ? m.k,m.j,' ',arrayToString(@aX) NEXT NEXT * PROCEDURE splitNumberMin(N,parts,aReturn) * DIMENSION aReturn[m.parts] * aReturn=INT(m.N/m.parts) * aReturn[m.parts]=aReturn[m.parts]+m.N%m.parts PROCEDURE splitNumberMax(N,parts,aReturn) DIMENSION aReturn[m.parts] IF EMPTY(m.N%m.parts) aReturn=m.N/m.parts ELSE aReturn=INT(m.N/(m.parts-1))-IIF(EMPTY(m.N%(m.parts-1)),1,0) aReturn[m.parts]=m.N-m.aReturn*(m.parts-1) ENDIF FUNCTION arrayToString(aInput) PRIVATE i,s s="" FOR i=1 TO ALEN(aInput) s=m.s+","+LTRIM(STR(aInput[m.i])) NEXT RETURN SUBSTR(m.s,2) * output 10 1 10 10 2 5,5 10 3 4,4,2 10 4 3,3,3,1 10 5 2,2,2,2,2 10 6 1,1,1,1,1,5 10 7 1,1,1,1,1,1,4 10 8 1,1,1,1,1,1,1,3 10 9 1,1,1,1,1,1,1,1,2 10 10 1,1,1,1,1,1,1,1,1,1Fabio