【发布时间】:2016-03-04 18:18:40
【问题描述】:
我正在尝试用 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;
}
这(至少似乎)适用于较小的数字,但当我使用非常大的数字时它会崩溃。为什么是这样?我需要使用更大的整数类型吗?还是代码本身有问题?
【问题讨论】:
标签: c++ int prime-factoring long-double large-data