30 lines
721 B
Text
30 lines
721 B
Text
Procedure isPrime(v.i)
|
|
If v <= 1 : ProcedureReturn #False
|
|
ElseIf v < 4 : ProcedureReturn #True
|
|
ElseIf v % 2 = 0 : ProcedureReturn #False
|
|
ElseIf v < 9 : ProcedureReturn #True
|
|
ElseIf v % 3 = 0 : ProcedureReturn #False
|
|
Else
|
|
Protected r = Round(Sqr(v), #PB_Round_Down)
|
|
Protected f = 5
|
|
While f <= r
|
|
If v % f = 0 Or v % (f + 2) = 0
|
|
ProcedureReturn #False
|
|
EndIf
|
|
f + 6
|
|
Wend
|
|
EndIf
|
|
ProcedureReturn #True
|
|
EndProcedure
|
|
|
|
OpenConsole()
|
|
Euler.d = 0.5772156649 ;0153286
|
|
|
|
For x.i = 2 To 1e8
|
|
If isPrime(x)
|
|
m.d = m + Log(1-(1/x)) + (1/x)
|
|
EndIf
|
|
Next x
|
|
PrintN("MM = " + StrD(Euler + m))
|
|
PrintN(#CRLF$ + "--- terminado, pulsa RETURN---"): Input()
|
|
CloseConsole()
|