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 回答