我有一个非常大的no 'x‘(10^18)和一个数字' z’表示6。我正在尝试使用c代码知道/计算1到x(10^18)范围内的多少个数字可以被Z整除。为此,我使用了一个简单的循环
While(x)
{
if(x % z == 0)
{
count++;
}
--x;
}但这段代码花费了太多的时间,因为它正在检查从1到x的所有值。有没有什么已知的算法或技术可以优化上面的代码,并仍然得到相同的结果。非常感谢你的帮助。
发布于 2012-04-07 01:44:55
count = floor(x / z);显然,您需要一个足够大的数据类型来容纳x。
https://stackoverflow.com/questions/10047099
复制相似问题