我正在尝试用 C++ 编写一个程序,它将素数具有 12 位数字。这是我的代码:
#include <iostream>
using namespace std;
int main()
{
long double userInput;
long double divisor = 2;
long double dividend;
cout << "Enter number: ";
cin >> userInput;
dividend = userInput;
do
{
while (static_cast<int>(dividend) % static_cast<int>(divisor) == 0)
{
cout << divisor << endl;
dividend = dividend / divisor;
}
divisor++;
} while (dividend > 1);
return 0;
}
这(至少似乎)适用于较小的数字,但当我使用非常高的数字时它会崩溃。为什么是这样?我需要使用更大的整数类型吗?还是代码本身有问题?