这是我的代码,用于查找数字的素数因子:
#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位数字,但我无法使用double
和long int
,因为%
无法同时对两者进行操作。我该怎么做呢?
答案 0 :(得分:3)
long long
是一种可以处理64位(> 12位)数字的较大数据类型。使用它应该有效。
答案 1 :(得分:0)
如果出于某种原因,您不允许使用另一个答案中提到的long long
,则可以在双打中模拟%
:
c = a - floor(a / b) * b;
如果a
和b
小于2 ** 52(4503599627370496),这应该可行。