-1

12 桁の素因数を計算するプログラムを C++ で作成しようとしています。これが私のコードです:

#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;
}

これは (少なくとも) 小さい数値では問題なく機能しますが、非常に大きな数値を使用すると機能しなくなります。どうしてこれなの?より大きな整数型を使用する必要がありますか? それとも、コード自体に何か問題がありますか?

4

1 に答える 1