Есть две формулы, в зависимости от того простое число или нет применяется та или иная формула.
Код:
if(isprime(x),f1(y),f2(z))
Для больших чисел (больше 
скажем миллиарда лучше сразу 

, до этого как оказалось они примерно равны по скорости) вместо 
isprime лучше использовать более быструю 
ispseudoprime (именно она используется внутри 
nextprime). До 

 они гарантированно дают одинаковый результат. А для ещё сильно больших чисел 
isprime будет выполняться 
днями и годами минуты и часы, а 
ispseudoprime секунды. Видел даже где-то утверждение что вообще не известно ни одного примера ошибки 
ispseudoprime.