首页 > 解决方案 > 获取“浮点异常:8”(我正在使用 Visual Studio Code)

问题描述

#include <iostream>
using namespace std;
int findPrime(unsigned long long int number);
bool isPrime(unsigned long long int number);

int main(){
    const unsigned long long int bound = 600851475143;
    cout << findPrime(bound) << endl;
}

int findPrime(unsigned long long int number){
    int largestFactor = 0;
    for(int i = 1; i <= sqrt(number); i++){
        if(number % i == 0){
            int possible = number/i;
            if(isPrime(possible))
                largestFactor = possible;
        }
    }
    return largestFactor;
}
bool isPrime(unsigned long long int number){
    for(int i = 0; i <= sqrt(number); i++){
        if(number % i == 0){
            return true;
        }
    }
    return false;
}

这段代码的目的是找到最大的素数。我收到 Floating point exception: 8 运行它时,它在 Visual Studio Code 中,我正在从终端运行。

标签: c++

解决方案


在此代码的第一次迭代中

bool isPrime(unsigned long long int number){
    for(int i = 0; i <= sqrt(number); i++){
        if(number % i == 0){
            return true;
        }
    }
    return false;
}

除以零已完成,但不允许这样做。对于素数检查,循环应该从 开始2,而不是。0


推荐阅读