O cálculo velho é diferente do cálculo novo mas..... bateu
E pra ficar mais doido isso.... parece que não foi coincidência....
#include "inkey.ch"
PROCEDURE Main
LOCAL nCont
SetMode(25,80)
CLS
FOR nCont = 100 TO 100000000
IF ValidIe( StrZero( nCont, 8 ) ) != ValidIE( StrZero( nCont, 9 ) )
? nCont
ENDIF
IF Inkey() == K_ESC
EXIT
ENDIF
IF Mod( nCont, 100000 ) == 0
? "alcancou " + Str( nCont, 10, 0 )
ENDIF
NEXT
RETURN
É calcular o dÃgito usando a rotina velha e a rotina nova, pra ver se dá diferença....
Na rotina velha, a multiplicação é por 1,2,3,4,5,6,7
Na rotina nova, a multiplicação é por 8,7,6,5,4,3,2, de trás pra frente iniciando no 2
por enquanto o resultado é o mesmo, e já chegou em 30.000.000
Deixar aqui rodando e vou jantar....
Mas ao que parece, vai ficar resolvido usando somente o cálculo novo.