Was ich mir noch überlegt habe:
1.
Code:
if(divisor > (max - 1) || divisor >= (prime / 3 + 1))
nach prime/3 kommt ja nur noch eine natürliche Zahl als Teiler: Prime/2. Diese ist aber immer x.5 also unerheblich für Primzahlen, oder man hat eine gerade Zahl eingegeben. Die sind aber durch 2 Teilbar und fallen vorher weg, oder irre ich mich da?
und 2.
Code:
if(divisor < 3)
divisor = divisor + 1LL;
else
divisor = divisor + 2LL;
Wenn eine Zahl durch 2,4,6,8,10 etc teilbar ist, ist sie durch 2 Teilbar, fällt also schon vorher weg. Wenn meine Überlegungen stimmen würde es also ausreichen durch 3,5,7,9 etc zu teilen.
Wenn ich irgendwo einen Denkfehler habe, sagt Bescheid.