- Function racine(ByVal a As Integer) As Integer
- Dim lenn As Integer
- lenn = lennb(a) + 2
- Dim two As Integer
- Dim nbmoins As Integer
- Dim impaire As Integer
- impaire = 1
- Dim res As Integer
- If lenn Mod 2 = 1 Then
- lenn = lenn - 1
- two = chiffre(a, lenn - 1)
- Else
- lenn = lenn - 2
- two = chiffre(a, lenn) * 10 + chiffre(a, lenn - 1)
- End If
- Do
- nbmoins = 0
- While impaire <= two
- nbmoins = nbmoins + 1
- two = two - impaire
- impaire = impaire + 2
- Wend
- impaire = (impaire - 1) * 10 + 1
- res = res * 10 + nbmoins
- If lenn > 0 Then
- lenn = lenn - 2
- two = two * 100 + chiffre(a, lenn) * 10 + chiffre(a, lenn - 1)
- End If
- Loop While lenn > 0
- racine = res
- End Function
-
- Function chiffre(ByVal nb As Integer, ByVal pos As Integer) As Integer
- Dim i As Integer
- For i = 1 To pos - 1
- nb = nb / 10 'on coupe ce qui suit
- Next
- chiffre = nb Mod 10 'on ne prend pas ce qu'in y a avant
- End Function
-
- Function lennb(nb As Integer) As Integer
- lennb = Len(CStr(nb))
- End Function
Function racine(ByVal a As Integer) As Integer
Dim lenn As Integer
lenn = lennb(a) + 2
Dim two As Integer
Dim nbmoins As Integer
Dim impaire As Integer
impaire = 1
Dim res As Integer
If lenn Mod 2 = 1 Then
lenn = lenn - 1
two = chiffre(a, lenn - 1)
Else
lenn = lenn - 2
two = chiffre(a, lenn) * 10 + chiffre(a, lenn - 1)
End If
Do
nbmoins = 0
While impaire <= two
nbmoins = nbmoins + 1
two = two - impaire
impaire = impaire + 2
Wend
impaire = (impaire - 1) * 10 + 1
res = res * 10 + nbmoins
If lenn > 0 Then
lenn = lenn - 2
two = two * 100 + chiffre(a, lenn) * 10 + chiffre(a, lenn - 1)
End If
Loop While lenn > 0
racine = res
End Function
Function chiffre(ByVal nb As Integer, ByVal pos As Integer) As Integer
Dim i As Integer
For i = 1 To pos - 1
nb = nb / 10 'on coupe ce qui suit
Next
chiffre = nb Mod 10 'on ne prend pas ce qu'in y a avant
End Function
Function lennb(nb As Integer) As Integer
lennb = Len(CStr(nb))
End Function