0

数値の素因数を見つけるための私のコードは次のとおりです。

#include <iostream>
using namespace std;

int main()
{
    long int a, b, c, d = 0, f;
    int w = 0;

    f = 13195;

    for(a = 3; a < 100; a++)
    {
        w = f % a;

        if(w == 0)
        {
            for(b = 2; b < a; b++)
            {
                d = 0;
                c = a % b;
                if(c == 0)
                {
                    d++;
                    break;
                }
            }

            if(d == 0)
                cout << a << " is a prime\n";
        }
    }

    system("pause");

    return 0;
}

fチェックする番号です。12桁の番号を確認する必要がありますが、両方を同時に使用することはできませdoublelong int%代わりに何ができますか?

4

2 に答える 2

3

Along longは、64 ビット (>12 桁) の数値を処理できる、より大きなデータ型です。それを使用するとうまくいくはずです。

于 2013-01-19T01:42:12.200 に答える
0

別の回答で述べたように、何らかの理由で使用が許可されていない場合は、ダブルスでlong longシミュレートできます。%

c = a - floor(a / b) * b;

abが約 2**52 (4503599627370496) 未満の場合、これは機能するはずです。

于 2013-01-19T02:22:06.377 に答える