나는 해결할 수없는 문제가 있습니다. 내 숫자가 상대성 소수인지 판단하기 위해 무작위로 숫자를 생성하고 있습니다. 여기 rand()에 의한 부동 소수점 예외 C++에서
나에게 부동 소수점 예외를 제공하는 기능입니다 : 나는 무작위 씨는 다음을 수행하여 다른 기능에서 한bool modularExponentiationTest(unsigned long long exponent, unsigned long long modulus)
{
short index = 0;
unsigned long long base;
unsigned long long result;
do
{
result = 1;
base = rand() % exponent; // <--CAUSED BY THIS
while (exponent > 0)
{
if (exponent & 1)
result = (result * base) % modulus;
exponent >>= 1;
base = (base * base) % modulus;
}
if (result != 1)
return false;
}while(++index < 10);
return true;
}
:
srand(time(NULL));
는 당신의 도움을 주셔서 감사합니다 !
으로 나누기가 while 루프에서 오른쪽으로
exponent
이동하고 생성 된? –