0

我需要将循环中的整数与 along和 a的商进行比较long。为了不进行整数除法,如果我理解正确,是否需要将其中一个长整数转换为双精度整数?

long prime = primes[d];
int i = 1;

//  "inputNumber / prime" should not be integer division, while it is now.
//  How do I do this yet still compare it to an "int" afterwards? 
while (i < (inputNumber / prime))
{
    primes[i*prime] = 0;
    i++;
}

那是代码片段。primes是一个用 s 填充的数组long。顺便说一句,这段代码是否正确:

primes[i*prime] = 0;

因为我担心 along * int不适用于数组索引。

非常感谢!

4

2 回答 2

3

为什么不while((i * prime) < inputNumber)呢?一个long乘以一个int结果long...

于 2012-06-30T21:57:02.837 回答
1

您可以将整数除法的操作数之一乘以1.0以避免结果的整数截断。

于 2012-06-30T21:55:53.937 回答