Tänk att man har ett tal, X. X är en variabel och kan vara vilket heltal som helst, ex. 210.
Finns det någon metod för att dela upp detta tal i två andra HELTAL, som bildar X som produkt (genom multiplikation)?
Om talet skulle vara ett primtal, skulle iallafall två tal som kommer så nära X som möjligt tas fram.
Är detta möjligt?
========================================
LÖST!!! Funktionen funkar, ska snygga till koden sen :-)
Function GetTwoTal(talet)
x = Int(Sqr(talet))
For a = x To x*2 Step 1
For b = x To 0 Step -1
If a * b = talet Then GetTwoTal = "a=" & a & ", b=" & b : Exit Function
Next
Next
'Kommer funktionen hit är det ett primtal.
x = Cint(talet / 2)
GetTwoTal = "PRIM... a=" & x & ", b=" & x & " (produkt " & CStr(x*2) & ")"
End Function
Faktorisering är ett tungt område. Det finns inga bra genvägar, utan det krävs fet CPU-kraft. På nätet finns dock lite att hitta.
Kommer du på ett smart sätt är det Nobelpris-varning :)
Ja, det är verkligen ingen bagatell... även om jag vet att det finns en herre i Indien som nyligen hittade på en algoritm för att bestämma om ett godtyckligt tal är primtal eller ej (på ett odåligt sätt) som är mäkta intresserad av faktorisering och håller på och forskar om det nu. Huka er RSA! :)