Мне был предоставлен код ниже, он передает число, чтобы проверить, является ли оно простым. Я не понимаю, что делает floor(sqrt(toCheck)) +1
или что делает переменная prb
. Я думаю, что он запускает цикл while, тогда как bool noFactorFound
является истинным, а prb меньше searchLimit
. Все встало бы на свои места, если бы я знал, как инициализирован searchLimit.Поиск кода первичного номера C++
#include<cmath> //for floor() & sqrt()
#include "prime.h"
bool isPrime(unsigned toCheck)
{
if (toCheck== 2)
return true;
if ((toCheck % 2) == 0)
return false;
unsigned prb = 3;
unsigned searchLimit = floor(sqrt(toCheck)) + 1;
bool noFactorFound = true;
while (noFactorFound && (prb<searchLimit))
{
if ((toCheck % prb) == 0)
noFactorFound = false;
else
prb += 2;
}
return (noFactorFound);
}
http://www.cppreference.com/w/cpp/numeric/math/sqrt, числовой/математика/этаж) –