在大型数字列表中计算模数的最快方法

时间:2011-11-28 02:04:24

标签: c++ modulus

我正在尝试编写一个c ++程序来查找具有一定范围(例如1到30亿)的所有数字,这些数字完全可以被一个数字N整除。我想知道我是否能像指针一样有效地执行此操作可能的。

非常基本:

for (i = 0; i < 3 BIllion; i++)
{
    if (i % N == 0) print (i);
}

我相信会有更好的解决方案,因为这需要很长时间。真的很感激在正确的方向上轻推。

1 个答案:

答案 0 :(得分:4)

不是依次测试所有数字,为什么不明确地生成倍数?

#include <cstdint>

uint32_t i = 0;
while (i < 3000000000)
{
    printf("%d\n", i);
    i += N;
}